由于您可以通过 XHR 调用 Soundcloud API
(因为它发送的 CORS 标头http://backstage.soundcloud.com/2010/08/of-cors-we-do/ http://backstage.soundcloud.com/2010/08/of-cors-we-do/, 正确的?)
我想知道音频数据本身是否可以实现这一点,例如轨道的stream_url。
当尝试使用 Web Audio API 通过 XHR(从客户端)打开stream_url 时,我得到一个Access-Control-Allow-Origin 不允许来源。错误。
有没有办法通过 XHttpRequest 从客户端 JavaScript 加载音频资源,或者是不可能的(https://stackoverflow.com/questions/10871882/audio-data-api-and-streaming-a-no-go https://stackoverflow.com/questions/10871882/audio-data-api-and-streaming-a-no-go) ?
那就太好了,因为这将允许使用 Web Audio API 实现一些非常酷的功能。
Thanks!
UPDATE
该问题可能与您调用时收到的 302 重定向有关:
http://api.soundcloud.com/tracks/5646378/stream.json?client_id=[client_id]
或其他一些请求实际媒体文件的调用(请参阅评论)。
HTTP/1.1 302 Moved Temporarily
Server: nginx
Date: Sun, 24 Jun 2012 09:58:01 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive
Cache-Control: no-cache
Location: http://ec-media.soundcloud.com/[...]
X-Runtime: 41
Content-Length: 339
Access-Control-Allow-Methods: GET, PUT, POST, DELETE
Access-Control-Allow-Headers: Accept, Authorization, Content-Type, Origin
Access-Control-Allow-Origin: *
X-Cacheable: NO:Cache-Control=no-cache
X-Varnish: 2433107209
Age: 0
Via: 1.1 varnish
X-Cache: MISS
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=252460800
Content-Type: audio/mpeg
Date: Sun, 24 Jun 2012 09:58:01 GMT
ETag: "c2241e[...]41bbcf7c0d32f09"
Last-Modified: Tue, 28 Sep 2010 17:57:26 GMT
Server: ECAcc (fra/D484)
x-amz-id-2: oB0XzQcc/[...]+mAr/a
x-amz-meta-bitrate: 128
x-amz-meta-duration: 152900
x-amz-meta-job: t405jWkfNvx7
x-amz-request-id: D65[...]E1355
X-Cache: HIT
Content-Length: 2445478
原始 JSON 响应具有 CORS 标头,而重定向的位置则没有。