Существует видео-тег HTML с autoplay
. Я хочу знать, когда произошло событие play
, вызвано ли оно автоматическим воспроизведением или вызвано ли пользователем нажатием кнопки воспроизведения?Как узнать, запущено ли событие воспроизведения видео в формате HTML, нажатие или автоигра пользователя?
ответ
AFAIK на самом деле нет пуленепробиваемого способа узнать разницу из коробки (если я не упустил для этого свойства).
Один из способов обойти это в этом случае, используя флаги (ы) на разных этапах. Например, установите флаг в событии canplay
на элемент видео, который очищается (истек) в течение разумного периода времени, который затем может использоваться с событием play
(я покажу пример в один момент).
Поскольку это немного «хакерский», могут быть особые случаи, когда статус проскальзывает, хотя время предварительной загрузки и подготовки, быстрые пользователи, нажимая кнопку и т. Д., Могут сыграть роль.
концептуальное пример:
(примечание: по какой-то причине в стек-сниппета ниже play
триггеров событий на паузу, а ..).
Как всегда, используйте на свой страх и риск!
var video = document.querySelector("video");
var tref; // to expire flag below
var autoPlay = false; // if we started by autoplay (expires)
video.addEventListener("canplay", function(e) {
clearTimeout(tref); // reset expire
autoPlay = this.autoplay;
if (!autoPlay) document.querySelector("div").innerHTML = "Ready.";
setTimeout(function() {autoPlay = false}, 100); // clear autoPlay flag
});
video.addEventListener("play", function(e) {
document.querySelector("div").innerHTML = autoPlay ? "Autoplay" : "Manual play";
});
video.src = "//media.w3.org/2010/05/sintel/trailer.mp4";
video {width:320px}
<div>Loading video...</div>
<video muted autoplay controls preload=auto></video>
- 1. Как узнать, запущено ли событие .click() или пользователем?
- 2. Срабатывает функция воспроизведения видео в формате HTML5?
- 3. Как узнать, уже запущено ли событие $ (window) .load()/window.onload?
- 4. Автоигра на HTML5 Видео на iPad, как BBC iPlayer?
- 5. Ограничьте количество воспроизведения видео в формате HTML5
- 6. Как узнать, запущено ли приложение из консоли или проводника?
- 7. Какое видео-событие HTML5 относится к текущему времени воспроизведения видео?
- 8. автоигра с использованием flowplayer в устройствах ios
- 9. захват видеоисточника на событие воспроизведения видео html5
- 10. HTML5 видео - событие воспроизведения не срабатывает
- 11. Как узнать, находится ли видеомагнитофон в режиме записи или воспроизведения?
- 12. Функция воспроизведения звука в формате HTML
- 13. Проверьте, запущено ли приложение или запущено тестирование
- 14. Как узнать, было ли видео/скрыто видео?
- 15. Как отображать видео в формате HTML
- 16. Как узнать, воспроизводится ли видео?
- 17. Проверка Javascript, чтобы узнать, было ли событие уже запущено или нажато.
- 18. Как узнать, что событие html готово или нет в sencha
- 19. Как контролировать скорость воспроизведения SWF-видео в формате HTML <object>
- 20. Включение воспроизведения видео в формате HTML5 в Android-браузере?
- 21. Как воспроизводить два видео в формате html?
- 22. Качество воспроизведения видео в html 5
- 23. Включен ли JavaScript для воспроизведения встроенного видео?
- 24. Возможно ли обнаружить видео в формате HTML в браузере?
- 25. Автоигра html5 в мобильном браузере
- 26. Как узнать, запущено ли мое приложение в первый раз?
- 27. Видео не воспроизводится в формате HTML (webhost000 или byethost5)
- 28. Предотвращение автоматического воспроизведения на встроенном HTML-видео
- 29. Скрыть кнопку мобильного воспроизведения видео
- 30. Использование произвольного расширения для воспроизведения видео в формате HTML5
Существует проблема, когда я запускаю фрагмент кода. Событие Video 'play' запускается перед тем, как добавить к нему прослушиватель событий. Я сделал что-то не так? –
@MartinZhai обычно можно решить, установив последний src (как в примере) – K3N
Я обнаружил, что Chrome не генерирует событие «щелчок» при нажатии кнопки воспроизведения/паузы. Сначала я подумал, что это новая функция последней версии, но я пробовал Chrome 40+, все тот же. У вас есть решение? –