JavaScript:找不到音频时重新加载页面

时间:2016-05-18 13:40:38

标签: javascript html5-audio

所以,我有这个非常基本的脚本,当音频流服务器关闭时重新加载整个页面。要播放音频,我使用的是HTML5音频元素。

<script type="text/javascript">
    document.getElementById('audio').addEventListener("ended",function() {
        location.reload();
    });
</script>

我想要做的是每次元素中没有源时刷新页面并保持刷新,直到源重新开启。

由于error事件被触发,我尝试首次刷新页面后尝试使用HTML5 ended事件,并且音频源仍然缺失导致错误。我想“抓住”此错误并告诉浏览器再次刷新,直到音频中没有错误

<script type="text/javascript">
    document.getElementById('audio').addEventListener("error",function() {
        location.reload();
    });
</script>

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

而不是重新加载整个页面,重做源代码将是最好的选择:

var audio = document.getElementById('audio'),
    url = "path/to/audio.mp3";

audio.onerror = audio.onabort = function() {
  // show message to user about server being down/audio unavailable
  // retry -
  setTimeout(function() {
    audio.src = url;  // invokes new loading attempt
  }, 5000);           // attempts to reload every 5 seconds
};

audio.oncanplay = function() {
   // all OK
};

audio.src = url;