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

Как вы проверяете, загружен ли аудио-элемент HTML5?

Я хочу знать, как проверить, загружен ли аудио-элемент HTML5.

4b9b3361

Ответ 1

Чтобы узнать, когда звук готов к воспроизведению, добавьте слушатели для событий oncanplay или oncanplaythrough. Чтобы узнать, когда аудио загрузилось вообще, прислушайтесь к событию onloadeddata:

<audio oncanplay="myOnCanPlayFunction()"
       oncanplaythrough="myOnCanPlayThroughFunction()"
       onloadeddata="myOnLoadedData()"
       src="myaudio.ogg"
       controls>
    <a href="myaudio.ogg">Download</a>
</audio>

<script>
function myOnCanPlayFunction() { console.log('Can play'); }
function myOnCanPlayThroughFunction() { console.log('Can play through'); }
function myOnLoadedData() { console.log('Loaded data'); }
</script>

Ответ 2

Отметьте ответ robertc для использования прослушивателей событий. Вы также можете напрямую проверить состояние готовности аудио-элемента:

var myAudio = $('audio')[0];

var readyState = myAudio.readyState;

readyState будет числом. Из Документов Mozilla:

  • 0 - Информация о медиа-ресурсе отсутствует.
  • 1 - Получено достаточное количество медиа-ресурсов, которые инициализируются атрибутами метаданных. Поиск больше не будет создавать исключение.
  • 2 - Данные доступны для текущей позиции воспроизведения, но недостаточно для фактического воспроизведения более одного кадра.
  • 3 - Доступны данные для текущей позиции воспроизведения, а также, по крайней мере, немного времени в будущем (другими словами, как минимум два кадра видео, например).
  • 4 - Достаточно данных - и скорость загрузки достаточно высока, - чтобы носитель можно было воспроизвести до конца без перерыва.