8

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

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

任何帮助,将不胜感激。

谢谢

4

2 回答 2

8

<audio>元素是要走的路,因为它在后台处理流式传输和缓冲。从 Chrome 18 开始,您可以将<audio>元素用作输入源,以便使用createMediaElementSource(). 在此处查看更多信息:

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

于 2012-08-24T17:50:06.237 回答
7

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

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);
}
于 2011-07-01T17:23:10.070 回答