录制麦克风没问题,连接分析仪以获得漂亮的vu-meter,使用{{3}中的'xaudio.js'重新采样大量数据到我们可以处理的内容(8Khz,Mono) } lib并将其包装到适当的WAV信封中。
停止录音机似乎是一个不同的故事,因为录音过程严重滞后于onaudioprocess功能。但即使这不是问题,因为我可以计算丢失的样本并在实际存储数据之前等待它们到达。
但现在呢?如何阻止音频进程调用onaudioprocess?断开所有节点并没有什么不同。我怎样才能重新初始化所有缓冲区,为下一次录制创造一个干净,新鲜的跳入点?我应该销毁AudioContext吗?我该怎么办?或者是否足以“取消”createMediaStreamSource?
需要做些什么来真正为顺序独立录制设置所有内容?
任何提示都表示赞赏。
答案 0 :(得分:1)
我不确定你的所有代码结构;就个人而言,即使我删除了MediaStreamSourceNode,我也会尝试继续使用AudioContext 和输入流(来自getUserMedia回调)。
尽管如此,要删除ScriptProcessor - 将脚本处理器节点中的.onaudioprocess设置为null。这将阻止它调用回调 - 然后如果你断开它并释放所有引用,它应该像往常一样被垃圾收集。
[编辑]哦,删除AudioContext的唯一方法是摆脱正在发生的任何处理(断开所有节点,删除任何onaudioprocess),删除对它的任何引用,并等待它被垃圾收集