Автозапуск видео в iPhone с Javascript - PullRequest
0 голосов
/ 05 января 2019

Я строю игру на основе элементов видео html5, и сценарий похож на то, когда видео заканчивается, другое видео начинается с обнаружения события ended, подобного этому.

video.on("ended", function() {
   someothervideo.play();
    });

Это прекрасно работает на всех браузерах и телефонах Android, но не работает на iPhone. После нескольких часов исследований я узнал о новых видео политиках iOS , и это имеет смысл
Но в этой вышеупомянутой ссылке есть примечание, т.е.

Примечание о требовании жеста пользователя: когда мы говорим, что действие должно было произойти «в результате жеста пользователя», мы имеем в виду, что JavaScript, который привел к вызову video.play(), например, должен иметь непосредственно получен из обработчика для события touchend, click, doubleclick или keydown. Таким образом, button.addEventListener('click', () => { video.play(); }) будет удовлетворять требованию жеста пользователя. video.addEventListener('canplaythrough', () => { video.play(); }) не будет.

По линии

button.addEventListener('click', () => { video.play(); }) будет соответствовать требованию жеста пользователя.

Я пытался поместить кнопку в DOM, как будто она нигде не отображается

<button id="fakedbtn" style="left:-999999999px">Faked button</button>

И изменил мой прослушиватель событий на

video.on("ended", function() {
       $('#fakedbtn').on('click',function(){
        someothervideo.play();
       });
  $('#fakedbtn').trigger('click');
});

Но по какой-то причине этот тоже не работает . Может кто-нибудь объяснить это поведение? И предложить мне что-нибудь еще, чтобы сделать трюк? Видео не может быть отключено, иначе это сработало бы.
Примечание: Я также пытался преобразовать вышеуказанную логику в javascript, используя addEventListener и прочее, но все же не повезло.

...