"Ошибка вызова getUserMedia: DOMException" Видеовызов Twilio с версией Chrome "Версия 72.0.3626.96"
Я добавил twsio видео js файл из cdn "// media.twiliocdn.com/sdk/js/video/releases/1.14.1/twilio-video.min.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
2 ответа
Не уверен на 100%, применимо ли это к этому сценарию, но для меня это произошло, когда я пытался подключить или создать локальную видеодорожку, когда не было доступной камеры, т.е. мой ноутбук находился на внешнем мониторе с закрытой крышкой. Как только появилось подходящее устройство, оно подключилось нормально.
Вы можете получить доступ к сообщению об ошибке в DOMExpception
объект через error.message
атрибут. Если написано "Устройство недоступно" или что-то подобное, то, вероятно, это именно так. Не знаю, почему весь объект не выводится на консоль или для этого в Twilio SDK нет встроенной обработки ошибок, я предполагаю, что это происходит довольно часто.
Возможный шаблон для решения этой проблемы - проверить, доступны ли какие-либо устройства требуемого типа в navigator.mediaDevices
и после этого добавьте соответствующие параметры инициализации для .connect()
вызов. Я еще не разбирался в этом, но, вероятно, лучший подход - создать треки отдельно от соединения, поскольку пользователь может изменить устройство в любой момент.
Ошибка не связана с twilio, Google Chrome или любым другим браузером... Я не уверен, что это именно так для вас, но для меня это было связано с тем, что я пытался проверить качество видео в двух разных браузерах на одном компьютере. . Таким образом, первый, который обращается к ресурсам, т. е. к камере и микрофону, смог успешно подключиться, в то время как второй браузер выдал исключение [createLocalTracks #2]. Ошибка вызова getUserMedia: DOMException: Не удалось запустить источник видео.