HTMLMediaElement: setSinkId() メソッド
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
setSinkId()
は HTMLMediaElement
インターフェイスのメソッドで、出力に使用するオーディオ機器の ID を設定し、プロミス (Promise
) を返します。
これは、アプリケーションが指定された機器を使用することを許可されている場合にのみ動作します。詳しくは下記のセキュリティ要件を参照してください。
構文
js
setSinkId(sinkId)
引数
sinkId
-
オーディオ出力機器の
MediaDeviceInfo.deviceId
です。
返値
例外
NotAllowedError
DOMException
-
speaker-selection
権限ポリシーが音声出力の使用をブロックするために使用された場合に返されます。 NotFoundError
DOMException
-
deviceId
がどの音声機器にも一致しない場合に返されます。 AbortError
DOMException
-
音声出力機器から新しい音声機器への切り替えに失敗した場合に返されます。
セキュリティ要件
この API にアクセスするには、以下の制約があります。
- このメソッドは安全なコンテキストの中で呼び出すこと。
- アクセスが
speaker-selection
HTTP 権限ポリシーで制限されることがあります。 - 既定以外の端末にアクセスするには、そのユーザー権限が要求されます。
ユーザーは、
MediaDevices.selectAudioOutput()
で表示されるプロンプトで、ID に関連付けられた端末を選択することで、その権限を付与します。
例
この例では、MediaDevices.enumerateDevices()
が返す配列から音声出力機器を選択し、それを音声のシンクとして設定する方法を示します。
enumerateDevices()
の結果には、ユーザー権限が要求されていないか、すでに付与されている端末しか含まれないことに注意してください。
js
const devices = await navigator.mediaDevices.enumerateDevices();
const audioDevice = devices.find((device) => device.kind === "audiooutput");
const audio = document.createElement("audio");
await audio.setSinkId(audioDevice.deviceId);
console.log(`Audio is being output on ${audio.sinkId}`);
仕様書
Specification |
---|
Audio Output Devices API # dom-htmlmediaelement-setsinkid |
ブラウザーの互換性
BCD tables only load in the browser