【问题标题】:html5 record input buffer using recorder.js使用 recorder.js 的 html5 记录输入缓冲区
【发布时间】:2013-09-17 09:16:17
【问题描述】:

我在我的应用程序中使用 html5 网络音频 api。申请很简单,我有

BufferSourceNode -> GainNode -> 低通滤波器 -> context.destination

现在我想在应用过滤器后保存输出。所以我决定之前添加记录器 上下文.目的地。但这不起作用,它在播放音频时会发出一些噪音,尽管我的录音机成功记录了过滤效果。

我这样做是正确的还是有更好的方法呢?

【问题讨论】:

    标签: javascript html audio web-audio-api


    【解决方案1】:

    两件事:

    1) 如果您仍然要使用缓冲区 - 即使您不使用 () - 您可能需要考虑使用 OfflineAudioContext (https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#OfflineAudioContext-section)。 OAC 可以比实时运行得更快,因此您无需实时“记录”它;你设置你的节点,调用 startRendering(),oncomplete 事件给你一个音频缓冲区。 () 如果你还想要一个 .WAV 文件,你可以从 Recordjs 中提取 WAV 编码函数,并使用它来编码任意缓冲区。

    2) 这听起来像是您的代码中的一个错误 - 它应该以任何一种方式工作,而不会造成额外的噪音。你有代码示例可以发给我吗?

    【讨论】:

    • 嗨 cwilso,这是我实施 OAC gist.github.com/pramodtech/8347621 的方式,我不确定我是否做得对..你能指导我吗?谢谢。
    • 您不需要使用所有的 record.js 来进行录音 - OfflineAudioContext 会为您完成。在设置 oncomplete 处理程序之后首先调用 startRendering() - 然后调用所有 start(0) 等。完成后,您将收到一个带有 renderBuffer 的 oncomplete 事件 - 这是渲染的结果。使用它并使用来自 record.js 的编码来生成你的 .WAV 文件。
    • 应该提到 - 你目前不能在 Chrome 的离线上下文中使用 record.js,因为我们有一个错误会阻止脚本处理器节点正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多