Событие HTML5 Videoloaddata не работает в Safari IOS

Я пытаюсь вызвать событие функцию loadvideo ( vidsource ) { уаг VID = документ . createElement ( 'видео' ); vid . src = vidsource ; alert ( «Видео для загрузки» ); // Это отлично работает в мобильном сафари vid . addEventListener ( 'loadeddata' , function () { alert ( "Video Loaded!" ); // Это не отображается в мобильном сафари // Делаем что-то еще здесь }, false ); } ce видео загрузило первый кадр. Код, который я использовал, работает в настольных браузерах, которые я тестировал, но он не работает в мобильном сафари на IOS. Есть ли что-то в коде, который не поддерживается на мобильном сафари, или есть другое решение для достижения того, что я хочу?

var vid = document.createElement('video');
if (/iPad|iPhone|iPod/.test(navigator.userAgent))
    vid.autoplay = true;
vid.addEventListener('loadeddata', function() {[...]}, false);
vid.src = videosource;

javascript,jquery,html,html5,html5-video,

0

Ответов: 2


1

На iOS похоже, что видео не загружается, если пользователь не нажимает на воспроизведение, или если добавлен атрибут автовоспроизведения (который фактически не появляется для его автовоспроизведения).

Для вас должно работать следующее:

progress

Кроме того, вы можете прослушивать loadeddataсобытие, а не addEventListener, что, похоже, отлично работает на iOS Safari.


0

попробуйте не использовать onэтот случай, используйте старый onстиль и установите src ПОСЛЕ того, как вы настроите прослушиватель событий:

...
vid.onloadeddata = function () {
    alert("Video Loaded!");
    // do something
}
vid.src = vidsource;
...

Если EventListener добавляется в EventTarget, когда он обрабатывает событие, он не будет запускаться текущими действиями, но может быть запущен на более позднем этапе потока событий, например, в фазу барботажа. - Чтобы узнать больше - https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

JavaScript, JQuery, HTML, html5, html5-видео,
Похожие вопросы