Navigator.getUserMedia()

非推奨
この機能はウェブ標準から削除されました。まだ対応しているプラウザーがあるかもしれませんが、ゆくゆくはなくなるものです。使用を避け、できれば既存のコードを更新してください。このページの下部にあるブラウザーの対応を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

Navigator.getUserMedia() メソッドは、最大1系統の動画入力機器 (カメラや共有画面など) および最大1系統の音声入力機器 (マイクなど) を MediaStream のソースとして使用する許可をユーザーに求めます。

許可が与えられた場合、それらの機器から動画や音声のトラックを持つ MediaStream が、指定された成功コールバックに配信されます。許可が拒否された場合や、互換性のある入力機器が存在しない場合、その他のエラー条件が発生した場合は、何が問題となったかを説明する MediaStreamError オブジェクトを伴ってエラーコールバックが実行されます。ユーザーがまったく選択をしなかった場合は、どちらのコールバックも実行されません。

これは古いメソッドです。代わりに新しい navigator.mediaDevices.getUserMedia() を使用してください。技術的には非推奨ではありませんが、この古いコールバックのバージョンはそのようにマークされています。

構文

navigator.getUserMedia(constraints, successCallback, errorCallback);

引数

constraints
要求するメディアの形式を指定する MediaStreamConstraints オブジェクト。詳細は、現在の MediaDevices.getUserMedia() メソッド下の constraints セクションと、能力と制約と設定を参照してください。
successCallback
メディアアクセスの要求が承認されたときに呼び出される関数です。この関数は、メディアストリームを含む MediaStream オブジェクトの単一の引数で呼び出されます。コールバックは、次の例のようにストリームを任意のオブジェクト (<audio><video> 要素など) に割り当てることができます。
function(stream) {
   var video = document.querySelector('video');
   video.srcObject = stream;
   video.onloadedmetadata = function(e) {
      // Do something with the video here.
   };
}
errorCallback
呼び出しが失敗した場合、errorCallback で指定され、MediaStreamError が唯一の引数に与えられた関数が呼び出されますこのオブジェクトは、DOMException をひな形としています。エラーコードは以下のとおり:

返値

undefined.

エラー

幅と高さ

これは、様々のブラウザの接頭辞に対処したコードを含む、getUserMedia() の使用例です。ただし、これは非推奨の使用方法なので注意してください。現在の API の使用例は、MediaDevices.getUserMedia() 下の セクションを参照してください。

navigator.getUserMedia = navigator.getUserMedia ||
                         navigator.webkitGetUserMedia ||
                         navigator.mozGetUserMedia;

if (navigator.getUserMedia) {
   navigator.getUserMedia({ audio: true, video: { width: 1280, height: 720 } },
      function(stream) {
         var video = document.querySelector('video');
         video.srcObject = stream;
         video.onloadedmetadata = function(e) {
           video.play();
         };
      },
      function(err) {
         console.log("The following error occurred: " + err.name);
      }
   );
} else {
   console.log("getUserMedia not supported");
}

許可設定

インストール可能アプリ (例えば Firefox OS アプリ) で getUserMedia() を使用するには、次のどちらか、または両方の項目をマニフェストファイルに記述する必要があります:

"permissions": {
  "audio-capture": {
    "description": "Required to capture audio using getUserMedia()"
  },
  "video-capture": {
    "description": "Required to capture video using getUserMedia()"
  }
}

詳しい情報は、permission: audio-capture および permission: video-capture を参照してください。

ブラウザーの互換性

新しいコードでは代わりに Navigator.mediaDevices.getUserMedia() を使用してください。

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
getUserMedia
非推奨非標準
Chrome 完全対応 53
完全対応 53
完全対応 21
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge 完全対応 12
完全対応 12
完全対応 79
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Firefox 完全対応 17
接頭辞付き 補足
完全対応 17
接頭辞付き 補足
接頭辞付き moz のベンダー接頭辞が必要
補足 The constraint syntax described here is available as of Firefox 38. Earlier versions (32-37) used an outdated constraint syntax, but the syntax described here is available there through the adapter.js polyfill.
IE 未対応 なしOpera 完全対応 40
完全対応 40
完全対応 15
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
未対応 12 — 15
Safari 未対応 11 — 12WebView Android 完全対応 53
完全対応 53
完全対応 40
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Chrome Android 完全対応 53
完全対応 53
完全対応 25
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Firefox Android 完全対応 24
接頭辞付き 補足
完全対応 24
接頭辞付き 補足
接頭辞付き moz のベンダー接頭辞が必要
補足 The constraint syntax described here is available as of Firefox 38. Earlier versions (32-37) used an outdated constraint syntax, but the syntax described here is available there through the adapter.js polyfill.
Opera Android 完全対応 41
完全対応 41
完全対応 14
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
未対応 12 — 14
Safari iOS 未対応 11 — 12Samsung Internet Android 完全対応 6.0
完全対応 6.0
完全対応 1.5
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要

凡例

完全対応  
完全対応
未対応  
未対応
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非推奨。新しいウェブサイトでは使用しないでください。
非推奨。新しいウェブサイトでは使用しないでください。
実装ノートを参照してください。
実装ノートを参照してください。
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。

関連情報