Sli*_*don 2 javascript audio cors soundcloud web-audio-api
我正在尝试使用Web音频API访问soundcloud音频.我使用下面的音频元素来获取音频(并使用createMediaElementSource从javascript中获取)
<audio id='stream' src="http://api.soundcloud.com/tracks/204082098/stream?client_id=MYCLIENTID" crossorigin='anonymous'></audio>
Run Code Online (Sandbox Code Playgroud)
但是这会产生CORS错误,即使Soundcloud旨在支持CORS
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://cf-media.sndcdn.com/OfjMZo27DlvH.128.mp3?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiKjovL2NmLW1lZGlhLnNuZGNkbi5jb20vT2ZqTVpvMjdEbHZILjEyOC5tcDMiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE0MzU0MTI0NzR9fX1dfQ__&Signature=SwXVan2GT2pvaP2Db5VtpElWKcUNVJdEd1MVsvjWu1NLNyt~BPMJO2Yx1Z1vvbX3hc887sw4BabAQBqlp6UldpxK13kizR2l2PJsnMRrO9Tm-MgaoWWDNr0QdUDJeqOp8do94lriA72IwYg21dm61-onQFpuKTZGR7wlvLeiQWMWJArEC0ATj7XfAM-Dy4bCrKGMHFhd6PbkcNigkS00~oUMes~HfjYzph~tAB~EAFcjqx4LFyBM6qMWb63O1U3~-jG39YFOHfR5-VqqA7ojEugtaAlJ30eUp3ygmG9jmfUHoaq1ebU1fIWsx94KOzDEY-8psqLhrj5LjWMBLf5kLg__&Key-Pair-Id=APKAJAGZ7VMH2PFPW6UQ. This can be fixed by moving the resource to the same domain or enabling CORS.
Run Code Online (Sandbox Code Playgroud)
这是从Web音频API访问soundcloud剪辑的正确方法吗?如果不是最好的方法是什么?
提前致谢
你可以这样做:
var audio = new Audio();
audio.src = 'http://api.soundcloud.com/tracks/204082098/stream?client_id=17a992358db64d99e492326797fff3e8';
audio.controls = true;
audio.autoplay = true;
audio.crossOrigin = "anonymous";
document.body.appendChild(audio);
var context = new (window.AudioContext || window.webkitAudioContext)();
window.addEventListener('load', function(e) {
var source = context.createMediaElementSource(audio);
source.connect(context.destination);
}, false);
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/iambnz/t6Ln0424/