Если загрузка прошла успешно, используется ли атрибут src или исходные элементы, то при загрузке данных запускаются события хода выполнения. Когда загружено достаточно данных для определения размеров и продолжительности видео, запускается событие загруженных метаданных. Когда для рендеринга кадра было загружено достаточно данных, запускается событие Загруженные данные. Когда загружаются достаточно данных для воспроизведения небольшого количества видео, происходит событие canplay. Когда браузер определяет, что он может воспроизводить все видео без остановки для загрузки дополнительных данных, запускается событие canplaythrough; это также, когда видео начинает воспроизводиться, если оно имеет атрибут автозапуска.
Примечание: Opera 10.50 не пытается определить, когда у нее достаточно данных для воспроизведения, но вместо этого только выстрелы могут воспроизводиться и могут проходить одновременно. Это, вероятно, будет исправлено в следующем выпуске.
Если браузер решит прекратить загрузку данных, чтобы сэкономить пропускную способность, то будет запущено событие приостановки. Если сервер по какой-либо причине прекращает передачу данных (без закрытия соединения), то через три секунды браузер запускает остановленное событие. Если браузер играет быстрее, чем сервер обслуживает данные, или когда поиск заставляет браузер ждать загрузки данных, происходит событие ожидания.
Примечание: Opera 10.50 еще не приостанавливает загрузку и не запускает остановленное событие.
Если вы хотите, чтобы кнопка воспроизведения была отключена до тех пор, пока видео не сможет воспроизводиться, вы можете включить ее для события canplay:
<input type="button" value="Play" id="playpause" onclick="playOrPause()" disabled>
video.oncanplay = function(e) {
playpause.disabled = false;
}
Источник .