我的Bootstrap轮播中有一些嵌入的YouTube视频。默认情况下,轮播会自动播放,但我希望在视频播放时暂停轮播。
是否有技巧来检测视频何时开始播放?如果可能的话,我想不使用YouTube API(每个轮播都有任意数量的视频,我不想创建每个视频的实例)。
编辑:最终设计
我在视频上创建了一个重叠:
.video_mask{
position:absolute;
top:0;
left:0;
width:100%;
height:275px;
z-index:25;
opacity:0;
}
当我点击面具时,我会设置相应的iframe自动播放,隐藏面具,并暂停轮播:
$('.video_mask').click(function(){
iframe = $(this).closest('.item').find('iframe');
iframe_source = iframe.attr('src');
iframe_source = iframe_source + "?autoplay=1"
iframe.attr('src', iframe_source);
// hide the mask
$(this).toggle();
// stop the slideshow
$('.projectOverviewCarousel').carousel('pause');
});
当用户点击轮播控件时,它会重置所有遮罩和 iframe 的 URL:
$('.projectOverviewCarousel').on('slide', function(){
var iframeID = getID($(this).find('iframe').attr("id"));
// stop iframe from playing
if(iframeID != undefined){
callPlayer(iframeID, 'stopVideo');
}
// turn on all masks
$('.video_mask').show();
// reset src of all videos
$('.projectOverviewCarousel').find('iframe').each(function(key, value){
url = $(this).attr('src');
if(url.indexOf("autoplay")>0){
new_url = url.substring(0, url.indexOf("?"));
$(this).attr('src', new_url);
}
});
一些需要检查的事情:确保Bootstrap轮播的控件具有比蒙版更高的z-index(使人们仍然可以手动进度幻灯片)。
希望这对其他人有用!
theiframe.src = "http://www.youtube.com/embed/JW5meKfy3fY?autoplay=1"
- Kevin B