如何在触摸屏设备上正常播放滚动视频?

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

我试图将播放作为滚动视频,我在 codepen 上找到了这段代码,我编辑了一点以使其适用于我的电脑。现在它在电脑上运行良好,视频在我滚动时播放。但是在 iPad 上,当我滚动视频时,视频会像我想要的那样滚动播放,但是当我停止滚动(从屏幕上松开手指)时,视频会以与视频开头相反的方式播放。

这是我编辑的代码。

<!DOCTYPE html>

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Play as Scroll Video</title>

    <style>
        #set-height {
            display: block;
        }

        #v0 {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
        }

        p font-family helvetica {
            font-size: 24px;
        }
    </style>

    <script>
        window.onload = function () {
            var frameNumber = 0, // start video at frame 0
                // lower numbers = faster playback
                playbackConst = 500,
                // get page height from video duration
                setHeight = document.getElementById("set-height"),
                // select video element         
                vid = document.getElementById('v0');

            // dynamically set the page height according to video length
            vid.addEventListener('loadedmetadata', function () {
                setHeight.style.height = Math.floor(vid.duration) * playbackConst + "px";
            });

            // Use requestAnimationFrame for smooth playback
            function scrollPlay() {
                var frameNumber = window.pageYOffset / playbackConst;
                vid.currentTime = frameNumber;
                window.requestAnimationFrame(scrollPlay);
            }

            window.requestAnimationFrame(scrollPlay);
        };
    </script>
</head>

<body>
    <div id="set-height"></div>
    <p id="time"></p>
    <video id="v0" tabindex="0" autobuffer="autobuffer" preload="preload">
        <source type="video/mp4; codecs=&quot;avc1.42E01E, mp4a.40.2&quot;"
            src="https://www.apple.com/media/us/mac-pro/2013/16C1b6b5-1d91-4fef-891e-ff2fc1c1bb58/videos/macpro_main_desktop.mp4">
        </source>
    </video>
</body>

</html>

起初我认为可能是因为视频的类型或编解码器,所以我尝试了 mp4 和 WebM,我也尝试更改视频的编解码器,但它并没有解决我的问题。所以,现在我认为这可能与视频无关。

javascript html scroll html5-video touchscreen
© www.soinside.com 2019 - 2024. All rights reserved.