跳到主要内容

媒体播放与管理

不论是本端 RCLocalTrack 类,还是远端 RCRemoteTrack 类,都继承自 RCTrack 基类,因此对于本地和远端音视频轨道数据,资源管理接口是完全一致的。

提示

以下代码示例中的 track 表示为 RCTrack 基类实例,既表示远端流,也表示本地流。

播放音视频资源

使用 videoTrack 实例的 play 方法,传入 <video> 标签,可播放视频。

// 通过 videoTrack.play 方法将 <video> 标签传递给 videoTrack 实例
videoTrack.play(videoNode)

直接调用 audioTrack 实例的 play 方法即可播放音频,无需额外传入参数。如果是采集的音频流,请尽量不要在本端播放,因为可能会引起回声问题

// 播放音频时无需传参,
audioTrack.play()

播放音频资源时,支持置播放音量,音量值接受 0-100 的整数。

audioTrack.play(null, {volume})

播放音频资源时,支持从指定播放音频设备输出。您需要先从 @rongcloud/plugin-rtc 模块导入 device 模块(详见设备管理)。通过 device.getSpeakers() 获取扬声器设备列表后,在 play 方法中传入。

audioTrack.play(null, {audioDeviceId})

禁用资源

调用本端发布的音轨或视轨的 mute 方法,可使房间内他人的客户端上不再播放该声音或视频。房间内的其他成员可通过房间事件监听器收到 onAudioMuteChangeonVideoMuteChange 事件回调。

调用他人发布的音轨或视轨的 mute 方法,本端暂停播放,对他人无影响。

track.mute()

启用资源

调用本端发布的音轨或视轨的 unmute 方法,将在房间内他人客户端上的恢复播放该资源。房间内的其他成员可通过房间事件监听器收到 onAudioMuteChangeonVideoMuteChange 事件回调。

调用他人发布的音轨或视轨的 unmute 方法,仅恢复本端播放。

track.unmute()

查询本端是否禁用资源

使用 isLocalMuted 查询资源在本地是否被禁用,即表示本端是否禁用了该资源。

const muted: boolean = track.isLocalMuted()

查询资源发布者是否禁用资源

使用 isOwnerMuted 查询资源在房间中是否被禁用,即资源发布者是否禁用了该资源。对于 RCLocalTrack 类实例,该值永远等于 isLocalMuted()

const muted: boolean = track.isOwnerMuted()

查询资源是否已发布到房间中

对于本地资源(RCLocalTrack 类实例),可使用 isPublished 方法来确定资源是否已发布到房间中。

const published: boolean = localTrack.isPublished()

查询资源是否已被本端订阅

对于远端资源(RCRemoteTrack 类实例),可以通过 isSubscribed 方法来确定资源是否已被己方订阅。

const subscribed: boolean = remoteTrack.isSubscribed()