webrtc:RTCTrackEvent在通过ontrack处理程序接收时不包含收发器

时间:2018-05-30 05:58:51

标签: javascript webrtc

来自RTCTrackEvent

[Constructor(DOMString type, RTCTrackEventInit eventInitDict),
 Exposed=Window]
interface RTCTrackEvent : Event {
    readonly attribute RTCRtpReceiver           receiver;
    readonly attribute MediaStreamTrack         track;
    [SameObject]
    readonly attribute FrozenArray<MediaStream> streams;
    readonly attribute RTCRtpTransceiver        transceiver;
};

有一个transceiver成员。

但是,当我通过track处理程序收到ontrack()事件时, transceiver不存在。

我将使用transceiver来显示收到的远程曲目。

任何想法最近显示远程轨道的方式是什么?

2 个答案:

答案 0 :(得分:0)

不再需要收发器。

addTrack()生成track事件,其中将触发远程ontrack()处理程序。

远程ontrack()处理程序只需使用收到的跟踪流设置远程视频src。

CODE(gUM)

navigator.mediaDevices.getUserMedia({
   audio: true,
   video: true
}).then((stream) => {
   if (! vid.srcObject) {
      vid.srcObject = stream;
   }
   // this triggers track event to the remote peer
   pc.addTrack(stream.getVideoTracks()[0], stream);
}).catch(logError);

CODE(ontrack() - 远程)

pc.ontrack = function(evt) { // "track" event received
   if (! remote_vid.srcObject) {
      remote_vid.srcObject = evt.streams[0];
   }
};

答案 1 :(得分:0)

在大多数浏览器中尚未实现

收发器。只有Firefox 59+已经实现了它们。但是当你得到轨道及其相关的流时,你不需要它们。