HTMLMediaElement:setSinkId() 方法
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}`);
规范
规范 |
---|
音频输出设备 API # dom-htmlmediaelement-setsinkid |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。