我工作的这个可视化http://trif.it仍然运作良好的Chrome稳定(41.X),但在Chrome浏览器开发,测试版和金丝雀(42.x起)停止工作,因为在一个变化如何铬(和在此之前,Firefox)的处理要分析音频源。
这里是有问题的代码。 直到删除正在处理的音频路由的最后部分的意见应该很好地工作。
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);*/
我最初张贴在铬的bug跟踪系统中的错误/请求( https://code.google.com/p/chromium/issues/detail?id=462998 ),但有大约需要有CORS在头从现在的答案对将要分析任何媒体资源(或称通过createMediaElementSource
)和的SoundCloud还有Shoutcast的流,我使用目前在网站上没有提供。 我总是可以使用一个CORS代理,但或许你已经知道一种解决方法或CORS标头在某些时候,今年计划尽可能多的网站将面临同样的问题,因为我很快就好了?
谢谢。