【问题标题】:Bootstrap 4 carousel and youtube videoBootstrap 4 轮播和 youtube 视频
【发布时间】:2018-09-16 17:51:36
【问题描述】:

我正在使用带有图像和嵌入 YouTube 视频的 Bootstrap 4 轮播。我设法在播放视频时暂停幻灯片,并在您按下控制按钮时停止视频。尽管通过按下控件查看或停止视频时,轮播循环不再自动工作,必须手动进行。有什么帮助吗?

<!-- Carousel -->
<div id="myCarousel" class="carousel slide carousel-fade" data-ride="carousel" data-interval="9000">
    <!--Indicators -->
    <ol class="carousel-indicators_blog">
        <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
        <li data-target="#myCarousel" data-slide-to="1"></li>
    </ol><!-- end .Indicators -->
    <div class="carousel-inner" role="listbox">
        <!-- 01_carousel -->
        <div class="carousel-item active">
            <img src="http://via.placeholder.com/825x464" class="img-fluid" alt="Responsive image">
        </div><!-- end .01_carousel -->
        <!-- 02_carousel -->
        <div class="carousel-item">
            <div  class="embed-responsive embed-responsive-16by9">
                <iframe id="player" src="https://www.youtube.com/embed/brdYAn6EZcU?rel=0&amp;enablejsapi=1&version=3&playerapiid=ytplayer" allowfullscreen></iframe>
            </div><!-- end .embed-responsive -->
        </div><!-- end .02_carousel -->
        <!-- 03_carousel -->
        <div class="carousel-item">
            <img src="http://via.placeholder.com/825x464" class="img-fluid" alt="Responsive image">
        </div><!-- end .03_carousel -->
    </div><!-- end .carousel-inner -->
    <!-- Controls -->
    <a class="carousel-control-prev" href="#myCarousel" role="button" data-slide="prev">
        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
    </a>
    <a class="carousel-control-next" href="#myCarousel" role="button" data-slide="next">
        <span class="carousel-control-next-icon" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
    </a><!-- end .Control -->
</div><!-- end .myCarousel -->

<script>
var player;
function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
        events: {
            'onStateChange': onPlayerStateChange
        }
    });
}

function onPlayerReady(event) {
    event.target.playVideo();
}

var done = false;
function onPlayerStateChange(event) {
    if (event.data == YT.PlayerState.PLAYING && !done) {
        $('#myCarousel').carousel('pause');
        done = true;
    }
}
</script>     

<script>
$('a.carousel-control-prev').click(function(){
$('#player')[0].contentWindow.postMessage('{"event":"command","func":"' + 'stopVideo' + '","args":""}', '*');
});

$('a.carousel-control-next').click(function(){
$('#player')[0].contentWindow.postMessage('{"event":"command","func":"' + 'stopVideo' + '","args":""}', '*');
});
</script>

【问题讨论】:

    标签: youtube bootstrap-4 carousel


    【解决方案1】:

    我今天遇到了同样的问题!

       var done = false;
        function onPlayerStateChange(event) {
            if (event.data == YT.PlayerState.PLAYING) {
                $('#homepage-slider').carousel('pause');
                done = true;
    
                console.log('play'+YT.PlayerState.PLAYING);
            }
            if (event.data == YT.PlayerState.PAUSED) {
                console.log(YT.PlayerState.PAUSED);
                $('#homepage-slider').carousel('cycle');
            }
      }
    

    【讨论】:

      猜你喜欢
      • 2013-08-16
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2021-12-16
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      相关资源
      最近更新 更多