远端轨道对象的基础类,为远端音频轨道 RemoteAudioTrack 和远端视频轨道 RemoteVideoTrack 提供一些公共的方法。
import ArRTC from "ar-rtc-sdk";
var remoteAudioTrack = null; // 存放远端音频轨道
var remoteVideoTrack = null; // 存放远端视频轨道
/**
* 创建一个客户端
*/
var rtcClient = ArRTC.createClient({ mode: "live", codec: "h264" });
rtcClient.on("user-published", async (user, mediaType) => {
// 订阅远端用户的音视频轨道
await rtcClient.subscribe(user, mediaType);
if (mediaType === "video") {
remoteVideoTrack = user.videoTrack;
console.log("subscribe video success");
}
if (mediaType === "audio") {
remoteAudioTrack = user.audioTrack;
user.audioTrack.
}
});
继承
- ITrack
- RemoteTrack
事件回调
first-frame-decoded
first-frame-decoded(): void
首帧音频或视频解码时触发。
remoteAudioTrack.on("first-frame-decoded", () => {
// 在页面上播放音频。
remoteAudioTrack.play();
})
remoteVideoTrack.on("first-frame-decoded", () => {
// 在页面上播放视频。
remoteVideoTrack.play("xxx");
});
返回值 void
属性
isPlaying
isPlaying: boolean
媒体轨道是否正在页面上播放。
true
: 媒体轨道正在页面上播放。false
: 媒体轨道没有在页面上播放。
trackMediaType
trackMediaType: "audio" | "video"
媒体轨道的类型:
"audio"
: 音频轨道。"video"
: 视频轨道。
方法
getListeners
getListeners(event: string): Function[]
指定一个事件名,获取当前所有监听这个事件的回调函数。
参数
-
event: string
事件名称。
返回值 Function[]
getMediaStreamTrack
getMediaStreamTrack(): MediaStreamTrack
获取浏览器原生的 MediaStreamTrack 对象。
返回值 MediaStreamTrack
一个 MediaStreamTrack 对象。
getTrackId
getTrackId(): string
获取由 SDK 生成的对于媒体轨道来说的唯一 ID。
返回值 string
媒体轨道 ID。
off
off(event: string, listener: Function): void
取消一个指定事件的监听。
参数
-
event: string
指定事件的名称。
-
listener: Function
监听事件时传入的回调函数。
返回值 void
on
on(event: "first-frame-decoded", listener: event_first_frame_decoded): void
参数
-
event: "first-frame-decoded"
-
listener: event_first_frame_decoded
返回值 void
once
once(event: string, listener: Function): void
监听一个指定的事件,当事件触发时会调用传入的回调函数。
当监听后事件第一次触发时,该监听和回调函数就会被立刻移除,也就是只监听一次指定事件。
参数
-
event: string
指定事件的名称。
-
listener: Function
传入的回调函数。
返回值 void
play
play(element?: string | HTMLElement): void
在页面上播放媒体轨道。
参数
-
Optional element: string | HTMLElement
指定一个 DOM 元素,SDK 将在这个元素下创建
<video>
元素播放视频轨道,支持 2 种类型:string
: 指定该 DOM 元素的 ID 值。HTMLElement
: 直接传入一个 DOM 元素对象。
返回值 void
removeAllListeners
removeAllListeners(event?: undefined | string): void
指定一个事件,取消其所有的监听。
参数
-
Optional event: undefined | string
指定事件的名称,如果没有指定事件,则取消所有事件的所有监听。
返回值 void
stop
stop(): void
停止播放。