【问题标题】:WebAudio not playing after stop(0)WebAudio 停止后不播放(0)
【发布时间】:2013-09-06 15:27:23
【问题描述】:

我正在写一些类似网络音频编辑器的东西,我想我已经接近完成基础知识了。我可以播放和停止音频文件,但是当我再次尝试调用 play 方法时,它就不起作用了,即使参数没有改变。

我很高兴看到有人调查我的问题,因为我不明白为什么它在其他项目中的类似代码不起作用时不起作用。不幸的是,我无法创建一个 jsfiddle,因为我需要加载一个外部 mp3 文件,而且似乎我不允许这样做。但是我已经粘贴了javascripthere和对应的html文件here

您所需要的只是一个可以将文件上传到的服务器和一个 mp3。或者你可以使用this link,但我最终会删除这些文件。

【问题讨论】:

    标签: javascript web web-audio-api


    【解决方案1】:

    您不能在AudioBufferSourceNode 上多次致电start()。它们仅供一次性使用。

    真正做到这一点的唯一方法是每次需要开始播放时从底层AudioBuffer 创建一个新的AudioBufferSourceNode

    【讨论】:

    • 谢谢,我会试试的。将所有属性“复制”到新的 AudioBufferSourceNode 中的最快方法是什么?有理由必须这样做吗?我想不出任何真正有意义的东西。
    • 您真正需要做的就是说var newSource = context.createBufferSource(); newSource.buffer = oldAudioBuffer;。至于为什么它会这样工作......不太确定。我怀疑这与内存/性能有关。
    【解决方案2】:

    您也可以让它继续运行,然后简单地将其从增益节点断开,振荡器可能只是闲置/无声地产生波形。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多