AudioContext:sinkchange 事件

实验性: 这是一个 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表

当输出音频设备(以及因此,AudioContext.sinkId)发生更改时,AudioContext 接口的 sinkchange 事件将被触发。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("sinkchange", (event) => {});

onsinkchange = (event) => {};

事件类型

示例

sinkchange 事件侦听器可用于报告音频输出设备的更改。请注意,如果 sinkId 包含 AudioSinkInfo 对象,则表示音频已更改为不在任何输出设备上播放。

js
audioCtx.addEventListener("sinkchange", () => {
  if (typeof audioCtx.sinkId === "object" && audioCtx.sinkId.type === "none") {
    console.log("Audio changed to not play on any device");
  } else {
    console.log(`Audio output device changed to ${audioCtx.sinkId}`);
  }
});

有关工作代码,请参阅我们的 SetSinkId 测试示例

规范

规范
Web Audio API
# eventdef-audiocontext-sinkchange

浏览器兼容性

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

另请参阅