Ответ 1
1. В частности, если один из запросов на аудио сбой и остановка буферизации, есть ли способ обнаружить это состояние?
Да, есть несколько способов сделать это! Но если вы хотите поймать тип ошибки, вы можете подключить прослушиватель событий ошибки к источникам:
$('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. Не могли бы вы указать его на другой источник?
Внутри функции обработчика ошибок вы можете изменить источник с помощью свойства src
звукового элемента:
var audio = $(this);
audio.src = "new-audio-file.mp3";
audio.load();
Другим вариантом является добавление нескольких источников в один и тот же звуковой тег, используя этот синтаксис:
<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. Об управлении несколькими аудиофайлами
Я бы предложил использовать плагин, если вы хотите управлять 206 аудиофайлами. Я использовал SoundManager2 какое-то время, и это очень хорошо!