我想读取一个MP3流(来自icecast,读取ICY元数据,然后将二进制MP3数据传递给Web Audio Api)。
Firefox有一个“moz-chunked-arraybuffer”xhr responseType来读取进度数据,但我找不到webkit / chrome的任何等价物。
EDIT 2014/02/03:
Chrome已开始实施xhr.responseType“stream”
“解析”登陆Chrome(使用--enable-experimental-webkit-features标志),但xhr.response结果对象(Stream)尚未直接在Javascript中使用:https://code.google.com/p/chromium/issues/detail?id=240603
EDIT 2014/07/10:
现在开发了规范:https://github.com/whatwg/streams
Chromium devs计划“在不等待完成标准化的情况下做一些原型”
编辑2015/01/22:
Streams API将不会在XHR中实现(它仅用于原型设计)。 It will finally be implemented实施中的Fetch API,最近在Chrome中发布(在实验标记后面)。
编辑2015/01/30: Fetch API有一个Intent to Ship! Streams API被宣布为“即将推出的集成”,它就在这里!
编辑2015/04/15:
\ o /荣耀! Fetch API现已登陆Chrome 42(当前稳定版本:http://googlechromereleases.blogspot.fr/2015/04/stable-channel-update_14.html)。 42不仅是生命,宇宙和一切的答案,而且还有这个问题“我怎样才能消费”AJAX请求“像溪流一样”:
https://github.com/GoogleChrome/samples/blob/gh-pages/fetch-api/fetch-response-stream.html
故事的结尾:)
答案 0 :(得分:3)
我的猜测是,WebKit将获得https://dvcs.w3.org/hg/streams-api/raw-file/tip/Overview.htm而不是
答案 1 :(得分:2)
很抱歉成为坏消息的持有者,但据我所知,目前还没有类似的webkit。最初,chunked-arraybuffer响应类型源于与您类似的问题:
http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/0924.html
此外,MDN将responseType列为仅在Firefox中可用:
答案 2 :(得分:0)
我认为您的问题的解决方案是没有看到html5的完整AudioContext对象。
http://www.html5rocks.com/en/tutorials/webaudio/intro/
您可以解码音频数据:decodeAudioData() 您可以通过AudioBuffer播放音乐,AudioBuffer可以通过网络套接字或仅通过分组的http流式传输音乐。
当你想播放一首歌时,你只需要调用playSound()
所以真正的答案是使用AudioContext,你将是金色的