MediaDeviceInfo
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.
MediaDeviceInfo
インターフェイスは、単一のメディア入力または出力機器を示す情報を持ちます。
navigator.mediaDevices.enumerateDevices()
の呼び出しによって取得できる機器の一覧は、MediaDeviceInfo
オブジェクトの配列であり、1 つのメディア機器が 1 つに対応します。
インスタンスプロパティ
MediaDeviceInfo.deviceId
読取専用-
文字列で、セッションをまたいで維持される機器を表す識別子を返します。他のアプリケーションからは推測できず、呼び出されたアプリケーションのオリジンで固有のものです。ユーザーがクッキーを消去するとリセットされます(プライベートブラウジングの場合は、セッションをまたいで維持されない異なる識別子を使用します)。
MediaDeviceInfo.groupId
読取専用-
文字列で、グループ識別子を返します。2 つの機器が同一のグループ識別子を持つ場合、それらの機器は同一の物理機器に属していることになります。例えば、モニターに内蔵カメラとマイクが付いている場合などです。
MediaDeviceInfo.kind
読取専用-
"videoinput"
、"audioinput"
、"audiooutput"
の何れかの列挙値を返します。 MediaDeviceInfo.label
読取専用-
この機器を記述する文字列を返します(例えば "External USB Webcam")。
メモ:
セキュリティのため、label
フィールドはアクティブなメディアストリームが存在するか、メディア機器への継続的な権限をユーザーが付与しない限り、常に空欄になります。機器ラベルの組み合わせによって、ユーザーを識別するためのフィンガープリントの一部として利用することができてしまいます。
インスタンスメソッド
MediaDeviceInfo.toJSON()
-
この
MediaDeviceInfo
オブジェクトの JSON 表現を返します。
例
ここでは、機器の一覧を取得するために enumerateDevices()
を使用しています。
if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
console.log("enumerateDevices() not supported.");
} else {
// カメラとマイクを一覧にする。
navigator.mediaDevices
.enumerateDevices()
.then((devices) => {
devices.forEach((device) => {
console.log(`${device.kind}: ${device.label} id = ${device.deviceId}`);
});
})
.catch((err) => {
console.log(`${err.name}: ${err.message}`);
});
}
コンソールには次のように表示されるでしょう。
videoinput: id = csO9c0YpAf274OuCPUA53CNE0YHlIr2yXCi+SqfBZZ8=
audioinput: id = RKxXByjnabbADGQNNZqLVLdmXlS0YkETYCIbg+XxnvM=
audioinput: id = r2/xw1xUPIyZunfV1lGrKOma5wTOvCkWfZ368XCndm0=
もしくは、1 つ以上のメディアストリームが有効の場合や、継続的な許可が与えられている場合は、次のように表示されるでしょう。
videoinput: FaceTime HD Camera (Built-in) id=csO9c0YpAf274OuCPUA53CNE0YHlIr2yXCi+SqfBZZ8=
audioinput: default (Built-in Microphone) id=RKxXByjnabbADGQNNZqLVLdmXlS0YkETYCIbg+XxnvM=
audioinput: Built-in Microphone id=r2/xw1xUPIyZunfV1lGrKOma5wTOvCkWfZ368XCndm0=
仕様書
Specification |
---|
Media Capture and Streams # device-info |
ブラウザーの互換性
BCD tables only load in the browser