#android #angular #twilio #getusermedia #domexception
#Android #угловой #твилио #getusermedia #исключение domexception
Вопрос:
Я использую сервис Twilio для реализации видеочата. Но я столкнулся с этой ошибкой.
Исключение DOMException: Не удалось запустить источник видео Android
Мой код, как показано ниже.
var options = {}; var _this = this; var browser = lt;anygt;navigator; browser.getUserMedia = (browser.getUserMedia || browser.webkitGetUserMedia || browser.mozGetUserMedia || browser.msGetUserMedia); browser.mediaDevices.enumerateDevices() .then(devices =gt; { options = { video: {}, audio: false } var isAudioInput = false; var isAudioOutput = false; devices.forEach(device =gt; { if (device.kind === "videoinput") { var width = document.getElementById('main_participant').clientWidth; var height = document.getElementById('main_participant').clientHeight; options['video'] = { width, height }; } else if (device.kind === 'audioinput') { isAudioInput = true; } else if (device.kind === 'audiooutput') { isAudioOutput = true; } }) if (isAudioInput amp;amp; isAudioOutput) { options['audio'] = true; } _this.createLocalMediaTracks(room.data, options); // This part is for create Twilio Room }); createLocalMediaTracks(room, options) { // Set Initial Device Status and set current status this.audioStatus = options.audio; this.videoStatus = options.video ? true : false; this.initialStatus = options; // Create Local Tracks with Device Status createLocalTracks(options) .then(localTracks =gt; { return connect(room.accessToken, { name: room.roomName, tracks: localTracks }) }).then(room =gt; { this.room = room; // Add LocalMediaTrack this.participants.push("You"); this.room.localParticipant.tracks.forEach(publication =gt; { if (this.mainParticipant.index === 0) { document.getElementById(`main_participant`).appendChild(publication.track.attach()); this.setFullSize("#main_participant video", true); } document.getElementById(`local-media`).appendChild(publication.track.attach()); this.setFullSize("#local-media video"); }) this.handleListen(); this.loading = false; }) }
Этот код хорошо работает на веб-платформе. Но не работает на мобильной платформе. Я протестировал его на своем мобильном телефоне, а также на эмуляторе Android (Nox App Player).
Сейчас я разрабатываю этот видеозвонок с использованием углового и без ионного интерфейса.
Комментарии:
1. Как вы внедряете это как приложение для Android с Angular, если вы не используете ionic? Какова
browser
цель в вашем примере?2. Спасибо вам за ваш ответ. Я хочу сказать, что я не разрабатываю приложение, а просто веб-сайт, который включает в себя видеочат. И объект браузера-Android/Chrome.
3. Извините, я пропустил
browser = lt;anygt;navigator
там, наверху. Что такое_this.createLocalMediaTracks
? Это не функция из видео Twilio, которую я могу найти. Можете ли вы включить эту реализацию?4. Я добавил функцию createLocalMediaTracks. Пожалуйста, проверьте.
5. Вы пытаетесь установить высоту и ширину видео на основе элемента на странице. Вы пробовали просто настроить
video: true
createLocalTracks
параметры? Просто чтобы посмотреть, сработает ли это?