dart - 如何在 Dart 的 audioWorkletNode 中添加 AudioWorkletProcessor 以使用它?
问题描述
在纯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
解决方案
如果 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']));
推荐阅读
- django - 如何将值从 Django 模板传递到视图
- laravel - 如何在多对多关系laravel中使用条件?
- c# - 使用 SOAP,如何在一个请求中传递多个 ID?
- c++ - TableView 不会将 QSqlQueryModel 加载到其中
- php - 如何将 Sengrid API 与 CI 集成为一个库
- python - Python 中的 KMeans - 转换变量后保留样本权重
- javascript - Inversify 容器在运行时未定义
- dart - 如果填充宽度,如何使行进入新行
- python - 如何在数据透视表中添加计算比率?
- python - 了解 Ubuntu 上的 Django 版本