Подтвердить что ты не робот

Как проверить, достигли ли ошибки HTML5 разные ошибки

В частности, если один из 206 запросов на аудио сбой и остановка буферизации, есть ли способ обнаружить это состояние? Или мне нужно проверить, остановлена ​​ли буферизация, сравнивая буферные суммы с прошлыми суммами?

Также как я могу проверить, не сработал ли указанный источник, можете ли вы указать его на другой источник?

4b9b3361

Ответ 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 какое-то время, и это очень хорошо!

Ответ 2

Существует полный список событий, которые обрабатываются медиа-элементами в спецификации: https://html.spec.whatwg.org/multipage/embedded-content.html#media-elements

Я бы посмотрел конкретно на застопорившиеся, прерванные, события прогресса.

Поскольку этот элемент является относительно новым, реализация может сильно различаться. Поэтому я тестировал бы эти события против платформ, на которые вы нацеливаетесь, чтобы убедиться, что они работают должным образом для ваших нужд. Если нет, вам может понадобиться сделать что-то более ручное, например, опрос буферизованного состояния, как вы уже упоминали.

Ответ 3

Я думаю, вы можете найти свой ответ здесь w3schools в конце страницы (блок медиа-событий)

возможно onerror или onstalled или onreadystatechange