AudioWorklet: port

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

port 只读属性是 AudioWorklet 接口的一部分,它返回一个 MessagePort 对象,该对象可用于在主线程和相关的 AudioWorkletGlobalScope 之间发送和接收消息。

这允许主线程中的代码与音频工作线程的全局作用域之间进行自定义、异步通信,例如接收控制数据或全局设置。

连接 AudioWorklet 及其相关的 AudioWorkletGlobalScopeMessagePort 对象。

示例

有关更多示例,请参阅 AudioWorkletNode.port

使用端口进行全局消息传递

在以下示例中,我们可以使用 port.onmessage 来接收数据,使用 port.postMessage 来发送数据。

js
const context = new AudioContext();
// Load the module that contains worklet code
await context.audioWorklet.addModule("processor.js");

// Listener for messages from AudioWorkletGlobalScope
context.audioWorklet.port.onmessage = (event) => {
  console.log("Message from global worklet:", event.data);
};

// Set a global config, for example:
context.audioWorklet.port.postMessage({
  volume: 0.8,
});

规范

规范
Web Audio API
# dom-audioworklet-port

浏览器兼容性

另见