媒体播放与管理
不论是本端 RCLocalTrack 类,还是远端 RCRemoteTrack 类,都继承自 RCTrack 基类,因此对于本地和远端音视频轨道数据,资源管理接口是完全一致的。
提示
以下代码示例中的 track 表示为 RCTrack 基类实例,既表示远端流,也表示本地流。
播放音视频资源
请使用 RCTrack 下的 play 方法播放音视频资源。
提示
不要在本端播放本端采集的音频流,否则可能会引起回声问题。
接口
typescript
Track.play(element, options)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| element | HTMLElement | 否 | 用于承载媒体流的元素标签,音频流可传空 |
| options | { volume?: number; audioDeviceId?: string } | 否 | 配置参数,volume:播放音频资源的音量,audioDeviceId:指定播放音频的音频设备 ID |
示例代码
typescript
// 通过 videoTrack.play 方法将 <video> 标签传递给 videoTrack 实例
videoTrack.play(videoNode)
// 尽量不要在本端播放本端采集的音频流,因为可能会引起回声问题
audioTrack.play()
禁用资源
调用本端发布的音轨或视轨的 mute 方法,可使房间内他人的客户端上不再播放该声音或视频。房间内的其他成员可通过房间事件监听器收到 onAudioMuteChange 与 onVideoMuteChange 事件回调。
调用他人发布的音轨或视轨的 mute 方法,本端暂停播放,对他人无影响。
typescript
track.mute()
启用资源
调用本端发布的音轨或视轨的 unmute 方法,将在房间内他人客户端上的恢复播放该资源。房间内的其他成员可通过房间事件监听器收到 onAudioMuteChange 与 onVideoMuteChange 事件回调。
调用他人发布的音轨或视轨的 unmute 方法,仅恢复本端播放。
typescript
track.unmute()
查询本端是否禁用资源
使用 isLocalMuted 查询资源在本地是否被禁用,即表示本端是否禁用了该资源。
typescript
const muted: boolean = track.isLocalMuted()
查询资源发布者是否禁用资源
使用 isOwnerMuted 查询资源在房间中是否被禁用,即资源发布者是否禁用了该资源。对于 RCLocalTrack 类实例,该值永远等于 isLocalMuted()。
typescript
const muted: boolean = track.isOwnerMuted()
查询资源是否已发布到房间中
对于本地资源(RCLocalTrack 类实例),可使用 isPublished 方法来确定资源是否已发布到房间中。
typescript
const published: boolean = localTrack.isPublished()
查询资源是否已被本端订阅
对于远端资源(RCRemoteTrack 类实例),可以通过 isSubscribed 方法来确定资源是否已被己方订阅。
typescript
const subscribed: boolean = remoteTrack.isSubscribed()