3

我添加了来自 cdn "// media.twiliocdn.com/sdk/js/video/releases/1.14.1/twilio-video.min.js" 的 twilio 视频 js 文件

我试图添加 adepter.js 但似乎同样的错误。

        Twilio.Video.createLocalTracks({
            audio: true,
            video: { width: 300 }
        }).then(function(localTracks) {

            return Twilio.Video.connect('{!! $accessToken !!}', {
                name: '{{ $roomName }}',
                tracks: localTracks,
                video: { width: 300 }
            });
        }).then(function(room) {

            console.log('Successfully joined a Room: ', room.name);

            room.participants.forEach(participantConnected);

            var previewContainer = document.getElementById(room.localParticipant.sid);
            if (!previewContainer || !previewContainer.querySelector('video')) {
                participantConnected(room.localParticipant);
            }

            room.on('participantConnected', function(participant) {
                console.log("Joining: '" + participant.identity + "'");
                participantConnected(participant);
            });

            room.on('participantDisconnected', function(participant) {
                console.log(participant);
                console.log("Disconnected: '" + participant.identity + "'");
                participantDisconnected(participant,room);
            });


        });

总是得到:- 调用 getUserMedia 失败:DOMException

4

1 回答 1

3

不是 100% 确定这是否适用于这种情况,但对我来说,这发生在我尝试连接或创建本地视频轨道时,没有可用的摄像头,即我的笔记本电脑在外接显示器上,盖子关闭。一旦有合适的设备可用,它就可以正常连接。

DOMExpception您可以通过error.message属性访问对象中的错误消息。如果它说“设备不可用”或类似的东西,那么它可能就是这样。不知道为什么整个对象没有打印到控制台,或者 Twilio SDK 没有为此内置错误处理,我猜这种情况经常发生。

解决此问题的可能模式是检查是否有任何所需类型的设备可用,navigator.mediaDevices然后为.connect()调用添加适当的初始化参数。我还没有掌握这一点,但最好的方法可能是与连接分开创建轨道,因为用户可以在任何给定点更改设备。

于 2019-09-12T09:22:56.920 回答