首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于缺乏CORS策略,无法分析Soundcloud的流媒体音频

由于缺乏CORS策略,无法分析Soundcloud的流媒体音频
EN

Stack Overflow用户
提问于 2015-03-11 11:02:41
回答 2查看 979关注 0票数 1

我正在开发这个可视化工具http://trif.it,它在Chrome稳定版(41.x)上仍然运行良好,但在Chrome、Beta和Canary (42.x以后)中停止工作,原因是Chrome (以及之前的Firefox )处理待分析音频源的方式发生了变化。

下面是有问题的代码。在您删除处理音频路由的最后部分的注释之前,它应该工作得很好。

代码语言:javascript
复制
var audioElement = new Audio();
var clientId = "xxxxx";

var oReq = new XMLHttpRequest();
//oReq.onload = reqListener;
oReq.open("get", "http://api.soundcloud.com/tracks/194245583.json?client_id=" + clientId, true);
oReq.send();

oReq.onreadystatechange = function() {
  if (oReq.readyState != 4)  { return; }

  var serverResponse = JSON.parse(oReq.responseText);
  console.log(serverResponse);

  audioElement.src = serverResponse.stream_url + "?client_id=" + clientId;
  audioElement.autoplay = true;
  audioElement.preload = true;
};

/*var audioContext = new AudioContext();
var audioSource = audioContext.createMediaElementSource(audioElement);
var audioAnalyser = audioContext.createAnalyser();
var audioGain = audioContext.createGain();
audioGain.gain.value = 1.0;

audioSource.connect(audioAnalyser);
audioAnalyser.connect(audioGain);
audioGain.connect(audioContext.destination);*/

我最初在Chromium跟踪器(https://code.google.com/p/chromium/issues/detail?id=462998)上发布了一个bug /请求,但得到的答案是,从现在起,任何媒体资源都需要有CORS来进行分析(或通过createMediaElementSource调用)和Soundcloud,以及我目前在该网站上使用的shoutcast流没有提供这些信息。我总是可以使用一个CORS代理,但也许你知道一个解决办法,或者说CORS头在今年的某个时候计划好了,因为很多网站很快就会面临同样的问题。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-12 21:22:44

增加a:

audioElement.crossOrigin = "anonymous";

在那里的某个地方,在设置源之前,这应该可以很好地工作。

票数 4
EN

Stack Overflow用户

发布于 2015-03-11 16:54:23

这是出于跨域安全的原因,而且不太可能改变。不确定SoundCloud等人是否正在计划CORS访问。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28984883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档