有没有人有任何关于如何为 Web Audio API 流式传输大型音频文件的示例或建议?阅读 W3C 规范,他们建议在文件较大而不是 XMLHTTPRequest 时进行流式传输(注意:当前存在阻止打开大文件Chromium 问题 71704的错误)
Google 提供的示例都显示了使用 XMLHTTPRequest 来加载小文件(<1MB Wave 文件)
任何帮助,将不胜感激。
谢谢
有没有人有任何关于如何为 Web Audio API 流式传输大型音频文件的示例或建议?阅读 W3C 规范,他们建议在文件较大而不是 XMLHTTPRequest 时进行流式传输(注意:当前存在阻止打开大文件Chromium 问题 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);
}