web-dev-qa-db-ja.com

getUserMedia()はchrome

自分のIPアドレスを使用して実行する自分のWebサイトを使用して、getUserMedia()を使用して自分のWebカメラにアクセスしようとしています。

私が私のウェブサイトをもう一度試すまでそれはうまくいきました。私は他のデモサイトを試しましたが、与えられたエラーはgetUserMediaがサポートされていないというものでした。

Chromeバージョンv47.0.2526.80m 32ビット

enter image description here

Ipadressの代わりにlocalhostと入力すると、ウェブカメラにアクセスできます。 Firefoxでも動作します。

12
Mick Jack

Chromeでは、getUserMediaに安全なオリジン(HTTPS)が必要です。

Chrome 47以降、getUserMedia()リクエストは、HTTPSまたはlocalhostの安全なオリジンからのみ許可されています。

https://developers.google.com/web/updates/2015/10/chrome-47-webrtc?hl=ja

15
Clay

Chromefinallyは新しい navigator.mediaDevices.getUserMedia() メソッドを実装しましたが、呼び出しを防ぐセキュリティを追加しました安全でないアドレス(非httpsまたは非localhostサーバー)

次のように呼び出します。

var video = document.querySelector('video');
navigator.mediaDevices.getUserMedia({video:true}).then(function(mediaStream){
    window.stream = mediaStream;
    video.src = URL.createObjectURL(mediaStream);
    video.play();
});

または、公式のwebRTCポリフィル adpater.js ライブラリを使用できます。

var constraints = { video: true, audio: true };

navigator.mediaDevices.getUserMedia(constraints)
  .then(stream => video.srcObject = stream)
  .catch(e => console.error(e));
11
Kaiido