如何添加 AudioWorkletProcessor 以在 Dart 的 audioWorkletNode 中使用它?

How do I add an AudioWorkletProcessor to work with it in audioWorkletNode in Dart?

JS我可以做到:

const audioContext = new AudioContext();
const source = audioContext.createMediaElementSource(new Audio());

await audioContext.audioWorklet.addModule('./my-processor.js');
const processorNode = new AudioWorkletNode(audioContext, 'my-processor');

source.connect(processorNode);
processorNode.connect(audioContext.destination);

Dart我做不到:

var audioContext = AudioContext();
var source = audioContext.createMediaElementSource(AudioElement());

audioContext.audioWorklet // The getter 'audioWorklet' isn't defined for the class 'AudioContext'.
var processorNode = AudioWorkletNode(audioContext, 'my-processor');

source.connectNode(processorNode);
processorNode.connectNode(audioContext.destination);

我在 AudioContext class 中找不到 audioWorklet 属性。 我试图在文档中找到 audioWorkletaddModule 的其他位置,但没有成功。

如何在 Dart 的 audioWorkletNode 中添加 AudioWorkletProcessor 以使用它?

如果 JS 互操作对象中没有方法或 属性,您可以使用 dart:js_util:

import 'package:js/js_util.dart' as jsu;

var worklet = jsu.getProperty(audioContext, 'audioWorklet'));

jsu.callMethod(worklet, 'addModule', ['./my-processor.js']));