--- 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 ---
Navigator.getUserMedia() メソッドは、最大1系統の動画入力機器 (カメラや共有画面など) および最大1系統の音声入力機器 (マイクなど) を {{domxref("MediaStream")}} のソースとして使用する許可をユーザーに求めます。
許可が与えられた場合、それらの機器から動画や音声のトラックを持つ MediaStream が、指定された成功コールバックに配信されます。許可が拒否された場合や、互換性のある入力機器が存在しない場合、その他のエラー条件が発生した場合は、何が問題となったかを説明する {{domxref("MediaStreamError")}} オブジェクトを伴ってエラーコールバックが実行されます。ユーザーがまったく選択をしなかった場合は、どちらのコールバックも実行されません。
これは古いメソッドです。代わりに新しい {{domxref("MediaDevices.getUserMedia", "navigator.mediaDevices.getUserMedia()")}} を使用してください。技術的には非推奨ではありませんが、この古いコールバックのバージョンはそのようにマークされています。
navigator.getUserMedia(constraints, successCallback, errorCallback);
constraintssuccessCallbackfunction(stream) {
var video = document.querySelector('video');
video.srcObject = stream;
video.onloadedmetadata = function(e) {
// Do something with the video here.
};
}
errorCallbackerrorCallback で指定され、{{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")}}
getUserMedia() を使って、動画ではなく写真を撮るためのチュートリアル。