【问题标题】:How to setup sequential independent recordings with webAudio-API如何使用 webAudio-API 设置顺序独立录音
【发布时间】:2013-12-19 13:19:14
【问题描述】:

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

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

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

需要做些什么才能真正为连续独立录制设置一切?

感谢任何提示。

【问题讨论】:

    标签: javascript microphone web-audio-api getusermedia webkitaudiocontext


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢。我会尝试并报告。我想尽可能保持系统处于活动状态,以避免一次又一次地询问用户访问麦克风的权限。暂停或暂停录音会很好。
    • 报告:谢谢@cwilso,这似乎是目前的工作。断开所有节点并最终将 onaudioprocess 设置为 null 会停止该进程,并允许我使用新的 createScriptProcessor 和空缓冲区重新开始录制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 2015-02-10
    • 1970-01-01
    相关资源
    最近更新 更多