有没有人有关于如何在Web Audio API中流式传输大型音频文件的示例或建议?根据W3C规范,当文件较大时,他们建议使用流式传输而不是XMLHTTPRequest(注意:目前存在一个错误,导致无法打开大文件 Chromium Issue 71704)
Google提供的示例都展示了使用XMLHTTPRequest来加载小型(<1MB)Wave文件
任何帮助将不胜感激。
谢谢
有没有人有关于如何在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);
}