跳到主要内容

媒体播放与管理

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

提示

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

播放音视频资源​

请使用 RCTrack 下的 play 方法播放音视频资源。

提示

不要在本端播放本端采集的音频流,否则可能会引起回声问题。

接口​

typescript
Track.play(element, options)

参数说明​

参数类型必填说明
elementHTMLElement否用于承载媒体流的元素标签,音频流可传空
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()