Автоматически воспроизведите звуковые файлы на iPad с HTML5

Я пытаюсь заставить звуковой файл автоматически воспроизводить в Safari на iPad. Если я перехожу к странице с помощью Safari на моем Mac, это прекрасно. На iPad не работает автоматическое воспроизведение.

86
задан milesmeow 9 June 2010 в 20:58
поделиться

3 ответа

ОБНОВЛЕНИЕ: Это взлом, и он больше не работает в IOS 4.X и выше. Этот работал на IOS 3.2.X.

Это неправда. Apple не хочет автоматически воспроизводить видео и аудио на IPad из-за большого объема трафика, который вы можете использовать в мобильных сетях. Я бы не стал использовать автовоспроизведение для онлайн-контента. Для автономных HTML-сайтов это отличная функция, и именно для этого я ее использовал.

Вот решение "поддельного щелчка javascript": http://www.roblaplaca.com/examples/html5AutoPlay/

Скопируйте и вставьте код с сайта:

<script type="text/javascript"> 
        function fakeClick(fn) {
            var $a = $('<a href="#" id="fakeClick"></a>');
                $a.bind("click", function(e) {
                    e.preventDefault();
                    fn();
                });

            $("body").append($a);

            var evt, 
                el = $("#fakeClick").get(0);

            if (document.createEvent) {
                evt = document.createEvent("MouseEvents");
                if (evt.initMouseEvent) {
                    evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
                    el.dispatchEvent(evt);
                }
            }

            $(el).remove();
        }

        $(function() {
            var video = $("#someVideo").get(0);

            fakeClick(function() {
                video.play();
            });
        });

        </script> 

Это не мой источник. Я нашел это некоторое время назад и протестировал код на IPad и IPhone с IOS 3.2.X.

33
ответ дан 24 November 2019 в 07:58
поделиться

Автовоспроизведение не работает на iPad или iPhone ни для видео, ни для аудио тегов. Это ограничение, установленное Apple для экономии полосы пропускания пользователей.

5
ответ дан 24 November 2019 в 07:58
поделиться

Попробуйте вызвать метод .load() перед методом .play() на теге аудио или видео... который будет HTMLAudioElement или HTMLVideoElement соответственно. Только так это могло работать на iPad!

7
ответ дан 24 November 2019 в 07:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: