HTMLMediaElement: setSinkId() 方法

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

HTMLMediaElement 接口的 setSinkId() 方法用于设置用于输出的音频设备的 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

浏览器兼容性

另见