媒体播放与管理
不论是本端 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 方法,可使房间内他人的客户端上不再播放该声音或视频。房间内的其他成员可通过房间事件监听器收到 onAudioMuteChange
与 onVideoMuteChange
事件回调。
调用他人发布的音轨或视轨的 mute 方法,本端暂停播放,对他人无影响。
track.mute()
启用资源
调用本端发布的音轨或视轨的 unmute 方法,将在房间内他人客户端上的恢复播放该资源。房间内的其他成员可通过房间事件监听器收到 onAudioMuteChange
与 onVideoMuteChange
事件回调。
调用他人发布的音轨或视轨的 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()