当新歌开始在Chrome和Firefox中使用音频html5标签时,播放流媒体音乐会停止

Răz*_*nda 5 html5 mp3 ogg playback html5-audio

我已经设置了一个IceCast2服务器,它能够以192 kbps的速率传输ogg或mp3.

在我使用的HTML中:

<audio controls autoplay>
    <source src="http://site.com:8000/mount1.ogg" type="audio/ogg">
    <source src="http://site.com:8000/mount2.mp3" type="audio/mp3">
    Your browser does not support the audio element.
</audio>
Run Code Online (Sandbox Code Playgroud)

但是在Chrome 22/Firefox 13中,每当新歌开始播放时,播放器就会停止播放.在IE10中它继续播放没有任何问题.我认为这可能与Chrome和Firefox在IE使用mp3时使用ogg源这一事实有关.当播放192 kbps(听到音乐时)时,Opera 12似乎也存在问题,我切换到128然后它工作得很流畅.

有人知道解决这个问题吗?

谢谢你的帮助!

Răz*_*nda 5

将其发布为临时hack,直到有人给出更好的答案为止。

在Chrome MEDIA_ERR_DECODE中,当播放停止时会抛出该异常;而在Firefox中,它会停止而不会出现任何错误。

我改变了srccurrentSrc然后叫play()onerroronended事件,但声音恢复播放以前有时会中断。肯定有更好的办法。

/* jQuery - run on document ready */
$(function ()
{
    var audioElement = $('#audioPlayer')[0];

    audioElement.onended = audioElement.onerror = function()
    {
        audioElement.src = audioElement.currentSrc;
        audioElement.play();
    };
});
Run Code Online (Sandbox Code Playgroud)

  • 拉兹万(Răzvan):您是否曾经发现您的流为什么这样做?我遇到了同样的问题,我想如果问题通常在.ogg流中,那么比我发现的两个SO问题更好地记录下来。 (2认同)