--- title: Navigator.getUserMedia() slug: Web/API/Navigator/getUserMedia tags: - API - Deprecated - Media - Media Capture and Streams API - Media Streams API - Method - Navigator - Reference - WebRTC - getusermedia translation_of: Web/API/Navigator/getUserMedia ---
{{APIRef("Media Capture and Streams")}}{{deprecated_header}}

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

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

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

構文

navigator.getUserMedia(constraints, successCallback, errorCallback);

引数

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

返値

{{domxref("undefined")}}.

エラー

{{page("/ja/docs/Web/API/MediaDevices/getUserMedia", "Errors")}}

幅と高さ

これは、様々のブラウザの接頭辞に対処したコードを含む、getUserMedia() の使用例です。ただし、これは非推奨の使用方法なので注意してください。現在の API の使用例は、{{domxref("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 を参照してください。

ブラウザーの互換性

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

{{Compat("api.Navigator.getUserMedia")}}

関連情報