我正在使用HTML5音频API播放声音。这适用于常规mp3文件,但是当使用http://95.173.167.24:8009
等声音流时,它无法播放。
以下是我正在使用的代码:
if('webkitAudioContext' in window) {
var myAudioContext = new webkitAudioContext();
}
request = new XMLHttpRequest();
request.open('GET', 'http://95.173.167.24:8009', true);
request.responseType = 'arraybuffer';
request.addEventListener('load', bufferSound, false);
request.send();
function bufferSound(event) {
var request = event.target;
var source = myAudioContext.createBufferSource();
source.buffer = myAudioContext.createBuffer(request.response, false);
source.connect(myAudioContext.destination);
source.noteOn(0);
}
有人能指出我正确的方向吗?
感谢任何帮助。 感谢
答案 0 :(得分:4)
SHOUTcast可能会将您的User-Agent字符串检测为浏览器。它会查找包含Mozilla
的任何字符串,并说“哦,这是一个浏览器!发送给管理员面板。”
您需要强制使用音频流。幸运的是,通过在URL的末尾添加分号可以轻松完成此操作:
http://95.173.167.24:8009/;
请注意,日志中的User-Agent字符串为MPEG OVERRIDE
。
这适用于大多数浏览器。有些浏览器可能仍然不喜欢来自SHOUTcast的类似HTTP的resopnses,但这至少可以让你开始。