谷歌铬-流媒体大型音频文件为网络音频API



有人有关于如何为Web audio API流式传输大型音频文件的示例或建议吗?阅读W3C规范,他们建议在文件较大时进行流式传输,而不是XMLHTTPRequest(注意:目前有一个错误阻止打开大文件Chromium Issue 71704)

Google提供的示例都显示了使用XMLHTTPRequest加载小型(<1MB Wave文件)

如有任何帮助,我们将不胜感激。

感谢

<audio>元素是最好的选择,因为它在后台处理流和缓冲。从Chrome 18开始,您可以使用<audio>元素作为输入源,以便使用createMediaElementSource()进行进一步处理。点击此处查看更多信息:

http://updates.html5rocks.com/2012/02/HTML5-audio-and-the-Web-Audio-API-are-BFFs

这不会直接回答您的问题,但会有所帮助。

向API中添加了异步decodeAudioData方法。这仍然会使用XHR,但值得将代码切换到它。新方法在Chrome 14中可用。

// Use async decoder if it is available.
if (context.decodeAudioData) {
  context.decodeAudioData(arrayBuffer, function(buffer) {
    source.buffer = buffer;
  }, function(e) {
    console.log(e);
  });
} else {
  source.buffer = context.createBuffer(arrayBuffer, false);
}

最新更新