AudioContext: sinkchange 事件

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

AudioContext 介面的 sinkchange 事件會在輸出音訊裝置(因此,AudioContext.sinkId)發生更改時觸發。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

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

onsinkchange = (event) => { }

事件型別

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

瀏覽器相容性

另見