есть ли событие JavaScript, вызванное, если видео HTML5 готово к воспроизведению?
Проверка готовности видео html5
Ответ 1
Я предполагаю, что готовность к воспроизведению означает, что свойство readyState
равно константе HAVE_ENOUGH_DATA
(числовое значение 4). В соответствии с doc, когда свойство readyState переходит к этому значению, следует запустить событие canplay
.
Ответ 2
Просто наткнулся на этот вопрос, и хотя он немного старый, я публикую это для будущих читателей (кто, как и я, возможно, пришел из Google).
Итак, на сегодняшний день это список событий для среды html5 (согласно W3C):
- onabort: Script для выполнения прерывания
- oncanplay: Script для запуска, когда файл готов начать воспроизведение (когда он достаточно буферизуется, чтобы начать)
- oncanplaythrough: Script для запуска, когда файл можно воспроизвести до конца без паузы для буферизации
- ondurationchange: Script для запуска при изменении длины носителя.
- onemptied: Script для запуска, когда происходит что-то плохое, и файл неожиданно недоступен (например, неожиданно отключается)
- onended: Script для запуска, когда носитель достигнет конца (полезное событие для таких сообщений, как "спасибо за прослушивание" )
- onerror: Script для запуска при возникновении ошибки при загрузке файла
- onloadeddatab > : Script для запуска при загрузке медиаданных
- onloadedmetadatab > : Script для запуска, когда загружаются метаданные (например, размеры и продолжительность)
- onloadstart: Script запускается так же, как файл начинает загружаться, прежде чем что-либо загружается на самом деле.
- onpause: Script для запуска, когда носитель приостанавливается пользователем или программным способом
- onplay: Script для запуска, когда носитель готов начать воспроизведение.
- onplaying: Script для запуска при начале воспроизведения медиафайлов
- onprogress: Script для запуска, когда браузер находится в процессе получения медиаданных
- onratechange: Script для запуска каждый раз, когда скорость воспроизведения изменяется (например, когда пользователь переключается в режим медленного движения или быстрого перехода вперед)
- onreadystatechange: Script для запуска каждый раз, когда состояние готовности изменяется (состояние готовности отслеживает состояние медиаданных)
- onseeked: Script для запуска, когда атрибут seek установлен в false, указывающий, что поиск закончился
- onseeking: Script для запуска, когда атрибуту seek задано значение true, указывающее, что поиск активен
- onstalled: Script для запуска, когда браузер не может извлечь мультимедийные данные по любой причине
- onsuspend: Script для запуска, когда выборка данных мультимедиа прекращается до того, как она будет полностью загружена по любой причине
- ontimeupdate: Script для запуска, когда игровая позиция изменилась (например, когда пользователь быстро перейдет в другую точку на носителе)
- onvolumechange: Script для запуска каждый раз при изменении тома (включая настройку громкости на "mute" )
- в ожидании: Script для запуска, когда носитель приостановлен, но ожидается возобновление (например, когда медиафайлы приостанавливаются для буферизации большего количества данных).
Данц искал путь к поиску.
Надеюсь, что это поможет.
Ответ 3
Хорошее обсуждение здесь...
http://tiffanybbrown.com/2010/07/05/the-html5-video-progress-event/
Особенно первый комментарий.
В принципе, это было в спецификации и было удалено, потому что это не точно соответствовало способу отображения медиа. Вместо этого было добавлено буферирование.
Вот пример использования буферизации:
http://hacks.mozilla.org/2010/08/html5-video-buffered-property-available-in-firefox-4/
Ответ 4
У вас есть 2 события для обработки, когда видео готово к воспроизведению.
- canplay: срабатывает, когда видео готово к игре но буферизация не завершена.
- canplaythrough: срабатывает, когда видео готово к воспроизведению и буферизации завершено
Ответ 5
Я нашел http://www.w3.org/TR/html5/video.html#mediaevents, чтобы быть чрезвычайно полезным, поскольку он перечисляет все события, которые доступны, когда дело доходит до тэгов html5.