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}`);

规范

规范
音频输出设备 API
# dom-htmlmediaelement-setsinkid

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅