HTML5 Audio Load Event? - PullRequest
       2

HTML5 Audio Load Event?

7 голосов
/ 18 февраля 2012

Есть ли событие загрузки, которое срабатывает после завершения загрузки звука? Я создаю аудио элемент, подобный этому.

var myAudio = new Audio("mySound.mp3");
myAudio.load();

Попытка добавить EventListener вроде так, но, похоже, не срабатывает.

myAudio.addEventListener("load",soundLoaded,false);

Ответы [ 2 ]

13 голосов
/ 22 июля 2014

Звучит так, как будто вы хотите событие " canplaythrough ".Это срабатывает, когда браузер считает, что может воспроизвести весь аудиофайл без остановки.

Попробуйте:

myAudio.addEventListener('canplaythrough', soundLoaded, false);

При загрузке аудиофайла происходит 7 событий в этом порядке:

  1. loadstart
  2. durationchange
  3. загруженные метаданные
  4. загруженные данные
  5. прогресс
  6. canplay
  7. canplaythrough

Обратите внимание, что это не поддерживаетсяв версиях Internet Explorer до 9.

3 голосов
/ 18 июня 2012

Реализация аудио тега очень зависит от браузера. Его поддержка, я бы сказал, меньше, чем тег видео, как это было в шумихе после речи Стива Джобса о Flash против священной войны HTML5, достаточно забавно, что она меньше всего поддерживается Safari. И это правда, что хорошо работает для тега Video (на обработчике событий), не работает для тега Audio, но что хорошо, что статусы все еще верны. Например:

var a = new Audio();
  • a.networkState и a.readyState - проверяя это каждую секунду на таймер, вы можете легко получить представление о загрузке и прогрессе игры.

Другие интересные свойства:

  • seeking - Истина, если UA в настоящее время ищет
  • seekable - Объект TimeRange, к которому можно обращаться.
  • played - TimeRange на каком UA был сыгран.
  • paused - True, если воспроизведение приостановлено.
  • ended - True, если воспроизведение закончилось.
  • currentTime - Возврат / установка позиции воспроизведения в секундах.
  • duration

Не забудьте использовать canPlayType(type) - возвращает "probably" и "maybe"

Обновление: рассмотрите возможность просмотра SoundManager2 - http://www.schillmania.com/projects/soundmanager2/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...