DOMException:找不到请求的设备GetUserMedia

时间:2018-09-24 12:44:19

标签: javascript webrtc

尝试访问连接到wifi的IP摄像机。

我已连接到该wifi,但出现错误。如果我尝试使用vlc打开,则可以连接,但getUserMedia不能为空。

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
})
export class HomeComponent {
  @ViewChild('video') video: any; 
  constructor() {
  }
  hasGetUserMedia() {
  return !!(navigator.mediaDevices &&
    navigator.mediaDevices.getUserMedia);
}


ngAfterViewInit() {
  if (this.hasGetUserMedia()) {
    // Good to go!
    console.log("Gooddd................");
  } else {
    alert('getUserMedia() is not supported by your browser');
  }
  let _video = this.video.nativeElement;
  if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
    navigator.mediaDevices.getUserMedia({ video: true, audio: true })
      .then(function (stream) {
        _video.src = window.URL.createObjectURL(stream);
        _video.play();
      }).catch(function (err) {
        console.log(err);
      });
    }
  }
}

<video #video width="640" height="480" autoplay></video>

5 个答案:

答案 0 :(得分:0)

尝试更改此行:

_video.src = window.URL.createObjectURL(stream);

与此:

_video.srcObject = stream;

答案 1 :(得分:0)

当您没有任何设备来捕获视频或捕获音频时,就会发生这种情况

尝试检查您的摄像头和麦克风是否工作正常

答案 2 :(得分:0)

在我的情况下,我通过 USB 连接了外部摄像头,我能够获得设备,我获得了一些设备作为音频输出和视频输入,并且没有音频输入(麦克风设备)但是当我请求我通过的设备时约束为..

function Webcam(){
  this.constraints = {
    video: true,
    audio: true
  }
  this.userMedia = null;
  this.mediaDevices = navigator.mediaDevices;
  this.initialize = function(){
    this.userMedia = this.mediaDevices.getUserMedia(this.constraints);
  }
}

let webcam = new Webcam();
    webcam.initialize();

因此 Promise 没有得到满足,并且由于找不到请求的设备而出现错误。

答案 3 :(得分:0)

使用此行初始化网络摄像头和麦克风:

navigator.mediaDevices.getUserMedia({ audio: true, video: true });

答案 4 :(得分:-1)

尝试不使用“audio: true”。它对我的帮助。 (麦克风不工作)。 并检查其他网站上的网络摄像头。 可能需要检查此页面的权限。