跳到主要内容

媒体播放与管理

不论是本端 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 方法,可使房间内他人的客户端上不再播放该声音或视频。房间内的其他成员可通过房间事件监听器收到 onAudioMuteChangeonVideoMuteChange 事件回调。

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

typescript
track.mute()

启用资源

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

调用他人发布的音轨或视轨的 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()