有人有关于如何为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);
}