HTMLMediaElement: setSinkId() メソッド

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

setSinkId()HTMLMediaElement インターフェイスのメソッドで、出力に使用するオーディオ機器の ID を設定し、プロミス (Promise) を返します。

これは、アプリケーションが指定された機器を使用することを許可されている場合にのみ動作します。詳しくは下記のセキュリティ要件を参照してください。

構文

js
setSinkId(sinkId)

引数

sinkId

オーディオ出力機器の MediaDeviceInfo.deviceId です。

返値

Promise で、 undefined に解決します。

例外

NotAllowedError DOMException

speaker-selection 権限ポリシーが音声出力の使用をブロックするために使用された場合に返されます。

NotFoundError DOMException

deviceId がどの音声機器にも一致しない場合に返されます。

AbortError DOMException

音声出力機器から新しい音声機器への切り替えに失敗した場合に返されます。

セキュリティ要件

この API にアクセスするには、以下の制約があります。

この例では、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

関連情報