如何使HTML5视频海报图像透明以在视频未播放时看到背景图像

3
我正在寻找一种方法来获取 HTML5 视频的透明海报图像。
我有一个页面,页面宽度为全屏(例如 1920x600)并带有背景图片。我想要在这个背景图片中间只显示视频播放按钮。视频和背景图片具有不同的长宽比。点击播放按钮后,视频应以正确的长宽比显示在背景图片上。
我使用 Plyr 作为 HTML5 视频播放器。
以下是播放器的实际实现:
   <style>
        .container_plyr_teaser {
        padding: 16px 0px 0px 0px;
        max-width: 1000px;
        margin: auto;
        }       
        .plyr {
        border-radius: 15px;
        }
        .plyr--stopped .plyr__controls {
        opacity: 0;
        pointer-events: none;
        }
    </style>

    <div class="container_plyr_teaser">
        <video class="js-player" controls playsinline preload="none" id="player11" data-plyr-config='{"volume": 0.3, "resetOnEnd": true, "enabled": true, "storage": { "enabled": false }, "quality": { "default": 720 } }'>
        <source src="wolken_360p.mp4" type="video/mp4" size="360">  
        <source src="wolken_720p.mp4" type="video/mp4" size="720">
        <source src="wolken_1080p.mp4" type="video/mp4" size="1080">
        </video>
     </div>

我的第一个想法是使用透明的海报图片 poster="Wolken_Poster_transparent_16x9.png",但结果是黑色视频播放器。 使用透明的海报图片会导致黑色视频播放器。 我的第二个想法是使用与背景图片的确切剪影作为视频海报图像。这看起来很理想,但仅适用于确切的分辨率。 使用背景图片的确切剪影作为视频海报图像。 如果浏览器窗口的分辨率不正确,则会在视频海报图像和背景图像之间产生不美观的重叠。 不美观的重叠 还有其他解决方案的想法吗?

隐藏视频,只保留播放按钮。当按钮被按下时,在图像顶部播放隐藏的视频。 - chintuyadavsara
谢谢你的想法。你有一些示例代码如何隐藏视频并保留播放按钮吗? - MichaGue
1个回答

0

我的解决方���如下:

<!-- generate an extra button to start the video -->    
<button id="button_teaser" onclick="playPause()">Play</button>

<video class="js-player" poster="poster.jpg" controls playsinline preload="none" id="video_teaser" data-plyr-config='{"volume": 0.3, "resetOnEnd": true, "enabled": true, "storage": { "enabled": false }, "quality": { "default": 720 } }'>
    <source src="video_360p.mp4" type="video/mp4" size="360">   
    <source src="video_720p.mp4" type="video/mp4" size="720">
    <source src="video_1080p.mp4" type="video/mp4" size="1080">
</video>

<!-- hide video -->
<script>
    $('#video_teaser').hide();
</script>

<!-- after clicking the generated play button, hide play button and show video -->
<script>
$(document).ready(function(){
    $('#button_teaser').click(function(){
        $('#video_teaser').show();
        $('#button_teaser').hide();
        $('#video_teaser').get(0).play();
    });
});
</script>

<!-- after playing video automatically hide video and show play button again -->
<script>
$(document).ready(function(){
    $('#video_teaser').on('ended',function(){
    $('#video_teaser').hide();
    $('#button_teaser').show();
    });
});
</script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接