Я хочу знать, как проверить, загружен ли аудио-элемент HTML5.
Как вы проверяете, загружен ли аудио-элемент HTML5?
Ответ 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 - Достаточно данных - и скорость загрузки достаточно высока, - чтобы носитель можно было воспроизвести до конца без перерыва.