Twilio视频参与者跟踪未加载到dom

时间:2018-11-02 16:37:07

标签: javascript dom video twilio webrtc

我正在遵循quickstart tutorial

中的示例

基本上我的本地视频运行良好,但是当参与者加入会议室时,由于对象的格式不同,我似乎无法将曲目添加到DOM元素中。

第13行具有: container.appendChild(track.attach());

但是在加入参与者时出现以下错误:

Uncaught (in promise) TypeError: track.attach is not a function

这是因为RemoteVideoTrackPublication对象的结构(上面被解析为track)在其中包含对象“ track”,因此它应该实际上是{{1 }}用于参与者对象。但是

可以从JS控制台使用。在客户端JS控制台发生此错误之后,我可以附加视频流-但无论如何尝试,由于container.appendChild(track.track.attach());函数似乎不存在,我似乎都无法正常添加轨道在attach.()对象上。

这是简单的DOM还是事件排序问题?

2 个答案:

答案 0 :(得分:0)

我有同样的问题,当我将twilio更新到版本2并在连接后更改代码时,我将其修复

room.participants.forEach(function (participant) {
     console.log('Remote Participant connected: ', participant);

     participant.tracks.forEach(function (publication) {
        if (publication.isSubscribed) {
            const track = publication.track;
            document.getElementById('co-browsing-remote-screen').appendChild(track.attach());
        }
     });
});

答案 1 :(得分:0)

room.participants.forEach(function(participant) {
    let previewContainer = document.getElementById('remoteTrack');
    participant.on('trackSubscribed', track => {
       previewContainer.appendChild(track.attach());
    });
});