HTML5 видео в выпуске Mobile Safari - PullRequest
       30

HTML5 видео в выпуске Mobile Safari

3 голосов
/ 19 августа 2011

Вот мой сценарий:

Я создаю приложение "киоск" в сафари с 2 видео, одно из которых выступает в качестве "заставки", а другое - дополнительное видео.SS отлично зацикливается с помощью: (сделано при onload тела = "init ()")

var myVideo = document.getElementById('screensaver');
myVideo.addEventListener('ended', playVideo, false);
function playVideo(){
  var myVideo = document.getElementById('screensaver');
  myVideo.play();
}

Когда пользователь нажимает на экран во время SS, он исчезает $('#screensaver').fadeOut(1000);и пользователю предоставляется вопрос с кнопкой для воспроизведения следующего видео.

Когда второе видео выполняется с помощью:

$('#presentation').bind('ended', function(){
        $(this).fadeOut(1000, function(){
            $('#swapVideo').show(); //Overlay for user interaction
            $('#screensaver').fadeIn(1000);
            $('#screensaver').get(0).play();
        }); 
    });

SS появляется, воспроизводится, но больше не зацикливается,Потеряны ли EventListener, когда для дисплея установлено значение none?

То же самое происходит, когда я снова пытаюсь воспроизвести второе видео.«Завершенный» eventListener, похоже, потерян ...

Ответы [ 2 ]

0 голосов
/ 09 июня 2015

В iOS .play () может выполняться только непосредственно из взаимодействия с пользователем.

Документация

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

Fiddle

$('.container').on('custom', function (evt) {
  $(this).toggle();  
});
0 голосов
/ 04 июня 2012

Я считаю, что iOS игнорирует .play(). Apple считает, что лучше всего запретить сайтам автоматически воспроизводить контент, который потенциально может поглотить чей-то тарифный план или вызвать нежелательные действия на iOS.

...