Исключение DOMException: Не удалось запустить источник видео Android

#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 параметры? Просто чтобы посмотреть, сработает ли это?