Я пытаюсь заставить звуковой файл автоматически воспроизводить в Safari на iPad. Если я перехожу к странице с помощью Safari на моем Mac, это прекрасно. На iPad не работает автоматическое воспроизведение.
ОБНОВЛЕНИЕ: Это взлом, и он больше не работает в 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.
Автовоспроизведение не работает на iPad или iPhone ни для видео, ни для аудио тегов. Это ограничение, установленное Apple для экономии полосы пропускания пользователей.
Попробуйте вызвать метод .load() перед методом .play() на теге аудио или видео... который будет HTMLAudioElement или HTMLVideoElement соответственно. Только так это могло работать на iPad!