某些移动设备上的视频自动播放问题 - 在某些设备上有效,但在其他设备上无效

问题描述 投票:0回答:1

我最近问过这个问题,但我仍然面临移动设备上视频自动播放的问题。虽然我的代码在某些手机上有效,但在其他手机上,视频仍然暂停,用户必须点击屏幕才能启动视频。

这是我迄今为止尝试过的:

- Muted the video to enable autoplay as per mobile browser requirements.
- Used "preload" and "autoplay" attributes in the video tag.
- Followed various recommendations from the community, but the issue persists.

我也尝试了ChatGPT建议的一些JavaScript函数,但问题在不同设备上仍然出现不一致。以下是我当前的代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Video Background</title>
    <style>
        html, body {
            margin: 0;
            padding: 0;
            height: 100%;
            width: 100%;
            overflow: hidden;
            position: relative;
        }

        video {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            z-index: -1;
        }
    </style>
</head>
<body>

    <video id="background-video" preload autoplay muted="muted" loop playsinline poster="">
        <source src="Background.mp4" type="video/mp4">
        Your browser does not support the video tag.
    </video>

</body>

</html>
        function playVideo() {
            var video = document.getElementById('background-video');
            video.play().then(function() {
                console.log('Video is playing');
            }).catch(function(error) {
                console.log('Video playback failed:', error);
            });
        }

        document.addEventListener('DOMContentLoaded', function() {
            var video = document.getElementById('background-video');

            
            document.body.addEventListener('click', playVideo);
            document.body.addEventListener('touchstart', playVideo);

           
            video.play().catch(function(error) {
                console.log('Auto-play failed:', error);
            });

           
            setTimeout(function() {
                window.location.href = 'menu.html';
            }, 3000);
        });


        document.addEventListener('visibilitychange', function() {
            var video = document.getElementById('background-video');
            if (document.hidden || video.muted === false) {
                video.pause();
            } else {
                video.play();
            }
        });
 html, body {
            margin: 0;
            padding: 0;
            height: 100%;
            width: 100%;
            overflow: hidden;
            position: relative;
        }

        video {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            z-index: -1;
        }

尽管实施了这些解决方案,视频仍然无法在所有设备上自动播放,我不确定为什么。在某些手机上,视频会暂停,用户必须点击视频才能开始播放。

有谁知道为什么会发生这种情况或有任何其他解决方案?我们将非常感谢您的帮助。

javascript html css mobile
1个回答
0
投票

许多移动浏览器(包括 Chrome 和 Safari)限制视频的自动播放,尤其是有声音的视频。为了提供积极的用户体验并节省数据,这些浏览器通常会阻止自动播放,除非视频静音。此外,某些用户可能会默认或选择启用设置,以防止由于数据使用问题或个人偏好而自动播放。确保所有设备使用相同的浏览器非常重要,但请注意设备电源模式有时可能会干扰这一点。如果其中之一是原因,则几乎没有解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.