HTMLMediaElement: setSinkId() 方法
HTMLMediaElement 介面的 setSinkId() 方法用於設定用於輸出的音訊裝置的 ID,並返回一個 Promise。
這僅在應用程式被允許使用指定裝置時才有效。有關更多資訊,請參閱下面的 安全要求。
語法
js
setSinkId(sinkId)
引數
sinkId-
音訊輸出裝置的
MediaDeviceInfo.deviceId。
返回值
異常
NotAllowedErrorDOMException-
當使用
speaker-selection許可權策略阻止使用音訊輸出時返回。 NotFoundErrorDOMException-
當
deviceId與任何音訊輸出裝置都不匹配時返回。 AbortErrorDOMException-
當切換音訊輸出裝置到新音訊裝置失敗時返回。
安全要求
API 的訪問受以下約束:
- 必須在 安全上下文 中呼叫該方法。
- 訪問可能受
speaker-selectionHTTP 許可權策略的限制。 - 訪問非預設裝置需要使用者許可。使用者透過在
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}`);
規範
| 規範 |
|---|
| 音訊輸出裝置 API # dom-htmlmediaelement-setsinkid |
瀏覽器相容性
載入中…