Вам потребовалось разместить на сайте видео и сделать его с автоматическим запуском? В 2024 году нет ничего проще... казалось бы.
iPhone Apple Safari VS автоматический запуск видео (video html)
17.02.2024
Начнем с того, что в Google Chrome autoplay не работает, но это самая маленькая проблема. Лечится это тем, что нельзя (по политике безопасности и заботе о пользователях?) делать видео с автостартом и звуком одновременно нельзя.
Решение: добавляем еще атрибут muted:
<video muted="" autoplay="">
А теперь, собственно, о iPhone Apple и Safari:
Нужно добавить, кроме muted еще и playsinline, но и это не работает. Поэтому нужно докинуть чуть-чуть JS:
<video class="bg__video" disablePictureInPicture loop="" muted="" autoplay="" playsinline preload="auto" poster="/poster.jpg"> <source src="video.webm" type="video/webm"> <source src="video.mp4" type="video/mp4"> </video> <script> let isPlaying = false; function playVideo(e) { if (isPlaying) return if ( e && e.type ) { console.log( `${e.type}: start loading video` ); } else { console.log( 'Page is loaded: start loading video' ); } isPlaying = true; console.log('start play video') document.querySelector('.bg__video')?.play() window.removeEventListener('load', fallBack) window.removeEventListener('touchstart', playVideo) document.removeEventListener('scroll', playVideo) document.removeEventListener('mouseenter', playVideo) document.removeEventListener('click', playVideo) } function fallBack() { setTimeout(playVideo, 2000) } window.addEventListener('load', fallBack) window.addEventListener('touchstart', playVideo) document.addEventListener('scroll', playVideo) document.addEventListener('mouseenter', playVideo) document.addEventListener('click', playVideo) </script>