我需要我的工作集来使用调用 TS 文件中的函数。因为在postMessage中只允许使用字符串和数字。我发现很难传递一个函数。这甚至可能吗?
calling.ts
// processAudio is the function (This is how i send data to worklet function)
this.socketWorkletNode.port.postMessage({
type: 'setState', state: state,
processAudio: this.filterFunctions.processAudio
});
worklet.js
class audio_process_worklet {
...
handleMessage_(event) {
// If process function is available then set it in the class
if(event.data.processAudio) {
this.processedData = event.data.processAudio(this.audioData);
}
}
...
}
更多细节:我需要传递函数的原因是因为它是我通过 WebAssembly 获得的函数。它实际上是一个用 C 代码编写的函数。我使用 emcc 编译器将其编译为 WASM 文件,并从服务器提供该文件。在浏览器中使用 WebAssembly 模块,我得到了这个功能。