使用Audio API播放音频流

时间:2012-09-28 12:42:41

标签: html5 audio audio-streaming

我正在使用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);
    }

有人能指出我正确的方向吗?

感谢任何帮助。 感谢

1 个答案:

答案 0 :(得分:4)

SHOUTcast可能会将您的User-Agent字符串检测为浏览器。它会查找包含Mozilla的任何字符串,并说“哦,这是一个浏览器!发送给管理员面板。”

您需要强制使用音频流。幸运的是,通过在URL的末尾添加分号可以轻松完成此操作:

http://95.173.167.24:8009/;

请注意,日志中的User-Agent字符串为MPEG OVERRIDE

这适用于大多数浏览器。有些浏览器可能仍然不喜欢来自SHOUTcast的类似HTTP的resopnses,但这至少可以让你开始。