如何使用webAudio-API设置顺序独立录制

时间:2013-12-19 13:19:15

标签: javascript microphone web-audio getusermedia webkitaudiocontext

录制麦克风没问题,连接分析仪以获得漂亮的vu-meter,使用{{3}中的'xaudio.js'重新采样大量数据到我们可以处理的内容(8Khz,Mono) } lib并将其包装到适当的WAV信封中。

停止录音机似乎是一个不同的故事,因为录音过程严重滞后于onaudioprocess功能。但即使这不是问题,因为我可以计算丢失的样本并在实际存储数据之前等待它们到达。

但现在呢?如何阻止音频进程调用onaudioprocess?断开所有节点并没有什么不同。我怎样才能重新初始化所有缓冲区,为下一次录制创造一个干净,新鲜的跳入点?我应该销毁AudioContext吗?我该怎么办?或者是否足以“取消”createMediaStreamSource?

需要做些什么来真正为顺序独立录制设置所有内容?

任何提示都表示赞赏。

1 个答案:

答案 0 :(得分:1)

我不确定你的所有代码结构;就个人而言,即使我删除了MediaStreamSourceNode,我也会尝试继续使用AudioContext 输入流(来自getUserMedia回调)。

尽管如此,要删除ScriptProcessor - 将脚本处理器节点中的.onaudioprocess设置为null。这将阻止它调用回调 - 然后如果你断开它并释放所有引用,它应该像往常一样被垃圾收集。

[编辑]哦,删除AudioContext的唯一方法是摆脱正在发生的任何处理(断开所有节点,删除任何onaudioprocess),删除对它的任何引用,并等待它被垃圾收集