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 |
浏览器兼容性
加载中…