在纯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);我在audioWorklet类中找不到AudioContext属性。我试图在文档中找到可以找到audioWorklet或addModule的其他位置,但没有成功。
如何在Dart中添加AudioWorkletProcessor以在audioWorkletNode中使用它?
发布于 2020-09-24 01:32:01
如果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']));https://stackoverflow.com/questions/59382065
复制相似问题