0

我需要我的工作集来使用调用 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 模块,我得到了这个功能。

4

0 回答 0