1. In particolare, se una delle richieste per l'audio non riesce e il buffering si interrompe, esiste un modo per rilevare tale stato?
Sì, ci sono alcuni modi per farlo! Ma se si vuole prendere il tipo di errore è possibile collegare il listener di eventi di errore per le fonti:
$('audio').addEventListener('error', function failed(e) {
// audio playback failed - show a message saying why
// to get the source of the audio element use $(this).src
switch (e.target.error.code) {
case e.target.error.MEDIA_ERR_ABORTED:
alert('You aborted the video playback.');
break;
case e.target.error.MEDIA_ERR_NETWORK:
alert('A network error caused the audio download to fail.');
break;
case e.target.error.MEDIA_ERR_DECODE:
alert('The audio playback was aborted due to a corruption problem or because the video used features your browser did not support.');
break;
case e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED:
alert('The video audio not be loaded, either because the server or network failed or because the format is not supported.');
break;
default:
alert('An unknown error occurred.');
break;
}
}, true);
2. Potrebbe quindi puntare ad un'altra fonte?
All'interno della funzione gestore degli errori è possibile cambiare la sorgente utilizzando la proprietà src
dell'elemento audio:
var audio = $(this);
audio.src = "new-audio-file.mp3";
audio.load();
Un'altra opzione è quella di aggiungere sorgenti multiple per lo stesso tag audio utilizzando la seguente sintassi:
<audio>
<source id="audio_player_ogv" src="test.ogv" type="audio/ogg" />
//In case that you can't load the ogv file it will try to load test.mp3
<source id="audio_player_mp3" src="test.mp3" type="audio/mpeg" />
</audio>
3. Circa gestire più file audio
Suggerirei di usare un plugin se stai pensando di gestire 206 file audio. Sto usando SoundManager2 per un po 'ed è molto buono!
fonte
2013-01-23 21:07:17
è possibile mostrare il codice che si utilizza per caricare questo file (3 o 4 del 206) –