切换幻灯片时BXSlider暂停Youtube视频

时间:2014-12-16 08:37:11

标签: javascript jquery jquery-plugins youtube bxslider

我有以下BXSlider示例,其中我有4张幻灯片,每张幻灯片都有一个Youtube视频。问题在于,当我播放视频并转到下一张幻灯片时,它会继续播放:

http://jsfiddle.net/isherwood/XWL9Y/

                                                                                     
$(document).ready(function () {
$('.bxslider').bxSlider();
});

有人可以帮助您在转到下一张幻灯片时暂停YouTube视频吗?

2 个答案:

答案 0 :(得分:3)

var slider = $("#gallery").bxSlider({
    adaptiveHeight:true,
    auto:true, 
    autoStart:true, 
    autoControls:true, 
    video:true,
    onSlideAfter: function(slide){
       if (slide.find("iframe:first").length) {
           slider.stopAuto();
       }
    }
});

如果你在滑块中使用iframe作为其他东西,你也可以使用像slide.find(“div.fluid-width-video-wrapper:first”)这样的东西。

Source

---- ----更新

var slider = $('.bxslider').bxSlider({
  onSlideAfter: function(slide, oldindex, currentSlide){
    oldSlide = $( '.bxslider > li:nth-child(' + (oldindex+1) + ')');
      youtubeVideo = oldSlide.find('iframe[src*=youtube]');
      if ( youtubeVideo.length ) {
        youtubeVideo.get(0).contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}','*');
      }
  }
});

Source

---- ----编辑

另外,请确保将?enablejsapi=true添加到iframe src,否则上述JavaScript将无效(source)。

答案 1 :(得分:0)

经过长时间的搜索,我找到了解决方案。试试这个:

onSlideAfter: function(){
    jQuery("iframe").each(function() { 
        var src= jQuery(this).attr('src');
        jQuery(this).attr('src',src);  
    });
}

这将停止所有视频。基本上是在重置视频网址。