0

录制麦克风没有问题,连接分析仪以获得漂亮的 vu-meter,使用speex.js库中的“xaudio.js”将大量数据重新采样到我们可以处理的东西(8Khz,单声道)并包装将其放入适当的 WAV 包络中。

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

但是现在呢?如何阻止音频进程调用 onaudioprocess?断开所有节点并没有什么不同。我如何能够重新初始化所有缓冲区,以便为下一次录制创建一个干净、新鲜的跳转点?我应该销毁 AudioContext 吗?我该怎么做?还是将 createMediaStreamSource 设为“null”就足够了?

需要做什么才能真正为顺序独立录制设置一切?

任何提示表示赞赏。

4

1 回答 1

1

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

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

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

于 2013-12-19T16:26:39.560 回答