Fixed player HTML5 error handling
This commit is contained in:
parent
caa591bd5e
commit
c80d437601
|
@ -63,11 +63,55 @@
|
||||||
if (!this.flashDetect) {
|
if (!this.flashDetect) {
|
||||||
|
|
||||||
MRP.html.audio.addEventListener('error', function failed(e) {
|
MRP.html.audio.addEventListener('error', function failed(e) {
|
||||||
var stream = musesPlayer.getNextAvailableStream();
|
switch (e.target.error.code) {
|
||||||
var audio = $(MRP.html.audio);
|
case e.target.error.MEDIA_ERR_NETWORK:
|
||||||
audio.src = stream["url"];
|
// If there is a network error keep retrying to connect
|
||||||
audio[0].load();
|
// to a stream.
|
||||||
audio[0].play();
|
var stream;
|
||||||
|
if (musesPlayer.playerMode == "auto") {
|
||||||
|
var nextAvailableStream = musesPlayer.getNextAvailableStream();
|
||||||
|
stream = nextAvailableStream["url"];
|
||||||
|
} else {
|
||||||
|
stream = musesPlayer.settings.url;
|
||||||
|
}
|
||||||
|
var audio = $(MRP.html.audio);
|
||||||
|
audio.src = stream;
|
||||||
|
audio[0].load();
|
||||||
|
audio[0].play();
|
||||||
|
break;
|
||||||
|
case e.target.error.MEDIA_ERR_DECODE:
|
||||||
|
// If there was a corruption error or a problem with the browser
|
||||||
|
// display an error and stop playback.
|
||||||
|
togglePlayStopButton();
|
||||||
|
clearTimeout(metadataTimer);
|
||||||
|
$("p.now_playing").html("Error - Try again later");
|
||||||
|
break;
|
||||||
|
case e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED:
|
||||||
|
// If in auto mode and the current stream format is not supported
|
||||||
|
// or the max number of listeners has been reached
|
||||||
|
// retry connection with the next available stream.
|
||||||
|
if (musesPlayer.playerMode == "auto") {
|
||||||
|
var nextAvailableStream = musesPlayer.getNextAvailableStream();
|
||||||
|
var audio = $(MRP.html.audio);
|
||||||
|
audio.src = nextAvailableStream["url"];;
|
||||||
|
audio[0].load();
|
||||||
|
audio[0].play();
|
||||||
|
} else {
|
||||||
|
// If in manual mode and the current stream format is not supported
|
||||||
|
// or the max number of listeners has been reached
|
||||||
|
// display an error and stop play back.
|
||||||
|
togglePlayStopButton();
|
||||||
|
clearTimeout(metadataTimer);
|
||||||
|
$("p.now_playing").html("Error - Try again later");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
togglePlayStopButton();
|
||||||
|
clearTimeout(metadataTimer);
|
||||||
|
$("p.now_playing").html("Error - Try again later");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
MRP.html.audio.addEventListener('pause', function paused(e) {
|
MRP.html.audio.addEventListener('pause', function paused(e) {
|
||||||
|
@ -218,8 +262,8 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
setTimeout(attachStreamMetadataToPlayer, time_to_next_track_starts);
|
|
||||||
}
|
}
|
||||||
|
var metadataTimer = setTimeout(attachStreamMetadataToPlayer, time_to_next_track_starts);
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue