XMLHttpRequest从不同的域获取声音

时间:2014-07-11 14:42:18

标签: ajax xmlhttprequest cross-domain web-audio arraybuffer

我目前正在使用Web Audio API,我正在寻找缓冲并播放来自不同域的声音来源。

我做了很多或研究,包括stackoverflow,似乎有解决方案来做跨域请求(JSONP,YQL ...)来查询html,json,xml ......但没有什么可以捕获音频源。获取声源的标准方法是使用XMLHttpRequest并强制响应为arrayBuffer类型:

var request = new XMLHttpRequest();
request.responseType = 'arraybuffer';
request.open("GET", url);

request.response之后可以成为可以播放的缓冲区。

这似乎适用于" url"指向同一域的音频文件。有没有办法获取XMLHttpRequest的响应请求来自外部域的音频源?

我尝试使用select查询 http://query.yahooapis.com/v1/public/yql,但无法从表中选取音频源(根据https://developer.yahoo.com/yql/console/)。

欢迎任何想法。

非常感谢!!

1 个答案:

答案 0 :(得分:2)

这只适用于您要求的音频文件位于支持CORS的服务器上(并且您在请求中使用CORS) - 您不能随意从其他服务器上获取声音文件(因为这样可以实现交叉-origin数据访问)。 http://enable-cors.org/