Navigator.getUserMedia()
非推奨: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。
非推奨の Navigator.getUserMedia()
メソッドは、最大 1 系統の動画入力機器(カメラや共有画面など)および最大 1 系統の音声入力機器(マイクなど)を MediaStream
のソースとして使用する許可をユーザーに求めます。
許可が与えられた場合、それらの機器から動画や音声のトラックを持つ MediaStream
が、指定された成功コールバックに配信されます。許可が拒否された場合や、互換性のある入力機器が存在しない場合、その他のエラー条件が発生した場合は、何が問題となったかを説明する MediaStreamError
オブジェクトを伴ってエラーコールバックが実行されます。ユーザーがまったく選択をしなかった場合は、どちらのコールバックも実行されません。
メモ: これは古いメソッドです。代わりに新しい navigator.mediaDevices.getUserMedia()
を使用してください。技術的には非推奨ではありませんが、この古いコールバックの版はそのようにマークされていますので、新しいプロミスを返す版を使用するよう強くお勧めします。
構文
js
getUserMedia(constraints, successCallback, errorCallback);
引数
constraints
-
要求するメディアの種類と、それぞれの種類に対する要求事項を指定するオブジェクトです。詳細は、最新の
MediaDevices.getUserMedia()
メソッドの定数の節と、能力、制約、そして設定の記事を参照してください。 successCallback
-
メディアアクセスの要求が承認されたときに呼び出される関数です。この関数は、メディアストリームを含む
MediaStream
オブジェクトの単一の引数で呼び出されます。コールバックは、次の例のようにストリームを任意のオブジェクト (<audio>
や<video>
要素など) に割り当てることができます。js
function(stream) { const 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()
下の例の節を参照してください。
js
navigator.getUserMedia =
navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia;
if (navigator.getUserMedia) {
navigator.getUserMedia(
{ audio: true, video: { width: 1280, height: 720 } },
function (stream) {
const 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");
}
許可設定
インストール可能なアプリで getUserMedia()
を使用するには、マニフェストファイル内で以下のフィールドのいずれか、または両方を指定する必要があります。
js
"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 を参照してください。
ブラウザーの互換性
BCD tables only load in the browser
警告: 新しいコードでは代わりに MediaDevices.getUserMedia
を使用してください。
関連情報
- この非推奨のメソッドに代わる
MediaDevices.getUserMedia()
。 - WebRTC - この API の入門ページ
- MediaStream API - メディアストリームオブジェクト向けの API
- ウェブカメラでの写真撮影 (en-US) -
getUserMedia()
を使って、動画ではなく写真を撮るためのチュートリアル