Как проверить, загружен ли аудиоэлемент HTML5? - PullRequest
34 голосов
/ 09 ноября 2011

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

Ответы [ 2 ]

46 голосов
/ 09 ноября 2011

Чтобы узнать, когда звук готов начать воспроизведение, добавьте слушателей для событий 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>
23 голосов
/ 09 сентября 2014

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

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

var readyState = myAudio.readyState;

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

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