dart - 如何使用 ScriptProcessorNode

标签 dart web-audio-api dart-html

我正在尝试在 Dart 中创建一个 Web 音频脚本处理器。我注意到这个问题显示使用“javascriptnode”:ScriptProcessorNode

这似乎不存在于当前的 Dart 版本中。有没有人有一个如何使用它的例子。我正在尝试创建一个 BitCrusher 处理器。

似乎最新的 api 没有“onAudioProcess”方法,我猜我应该使用“addEventListener”方法,但我不知道消息类型应该是什么。我什至尝试了“setEventListener”方法,但我仍然没有收到事件。

_script = _context.createScriptProcessor(2048, 1, 1);

_script.addEventListener("message", _onProcess);
_script.setEventListener(_onProcess);   //<--- this doesn't work either.

void _onProcess(Event e) {            //<---- This is never called
  // Perform bit crush algorithm
}

最佳答案

同时(即假设您很快可以直接使用_script.onAudioProcess)您可以使用以下 stub

// stub as onAudioProcess has disappeared from sdk 1.7
Stream<AudioProcessingEvent> onAudioProcess(ScriptProcessorNode node) {
  return node.on['audioprocess'];
}

并像这样使用它

onAudioProcess(_script).listen((AudioProcessingEvent event) {

  // example to get output data (for playback)
  Float32List data = event.outputBuffer.getChannelData(0);

  // example to get input data (for recording)
  Float32List data = event.inputBuffer.getChannelData(0);

});

关于dart - 如何使用 ScriptProcessorNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27063827/

相关文章:

flutter - 背后的逻辑是什么,什么onPressed带入Flutter?

javascript - 在Web Audio API中通过PeriodicWave播放缓冲区,我可以将增益设置为与缓冲区一样大吗?

javascript - 未捕获类型错误 : Type error in WebGL using Three. js

dart - 如何在AngularDart中大写acx-scorecard值文本

flutter - Dart future /flutter_sound示例不起作用

ios - 链接框架 'Pods_Runner.framework' 缺少此目标 : x86_64 所需的一个或多个架构

javascript - Safari 网络音频可视化工具适用于 mp3 文件,但不适用于流

onclick - 检查元素是否是Dart中另一个元素的子元素

svg - Dart 创建和转换 SVG 路径

dart - 如何在不再需要 Dart future 时删除它