0

我正在使用 Twilio 服务来实现视频聊天。但是我遇到了这个错误。

DOMException: 无法启动视频源 android

我的代码如下所示。

var options = {};
var _this = this;

var browser = <any>navigator;

browser.getUserMedia = (browser.getUserMedia ||
  browser.webkitGetUserMedia ||
  browser.mozGetUserMedia ||
  browser.msGetUserMedia);

browser.mediaDevices.enumerateDevices()
  .then(devices => {
    options = {
      video: {},
      audio: false
    }
    var isAudioInput = false;
    var isAudioOutput = false;
    devices.forEach(device => {
      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 && 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 => {
      return connect(room.accessToken, {
        name: room.roomName,
        tracks: localTracks
      })
    }).then(room => {
      this.room = room;
      // Add LocalMediaTrack
      this.participants.push("You");
      this.room.localParticipant.tracks.forEach(publication => {
        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;
    })
}

此代码在 Web 平台上运行良好。但不适用于移动平台。我在我的手机和安卓模拟器(Nox App Player)上测试了它。

现在我正在使用ANGULAR开发这个视频通话,而不是基于离子的。

4

0 回答 0