Twitter Bootstrap轮播中的视频不会停止播放

时间:2013-07-18 16:45:21

标签: jquery twitter-bootstrap

使用最新版本的Twitter Bootstrap,并通过iframe嵌入Vimeo视频...我在BootSnipp(Extend Carousel)的帮助下构建了一个简单的轮播,而不是放置图像缩略图,我添加了视频。但是,我遇到了一个问题......当你播放第一个视频并点击另一个视频时,第一个视频继续播放。我需要在点击其他视频时停止播放视频。

许多其他与YouTube合作的帖子和我在Vimeo上看过的帖子似乎都没有帮助。

1 个答案:

答案 0 :(得分:4)

我没有使用过BootSnipp,但以下内容适用于vanilla Bootstrap。

当Bootstrap轮播滑到下一张幻灯片时,您需要使用Vimeo JavaScript API手动暂停视频。这是最简单的使用Vimeo的Froogaloop library

给每个Vimeo播放器<iframe>一个唯一的id,将该id作为“player_id”传递,为Bootstrap的"slide.bs.carousel" event添加一个监听器(在Bootstrap v3.0中;我相信这只是{{1}在v2.3.2中),并在相应的Vimeo播放器上调用Froogaloop.api(“pause”)。

在轮播中创建Vimeo幻灯片时,每个Vimeo播放器都应遵循此基本设置(为清楚起见,我不包括除"slide"id以外的任何选项/属性;请注意{{ 1}}是src属性中必需的查询变量,用于激活Vimeo JavaScript API):

api=1

(其中N是一些唯一的id,可能是你的迭代器索引。)

编辑: 此技术不需要src<iframe id="player-id-N" src="http://player.vimeo.com/video/yourVideoIDHere?player_id=player-id-N&api=1"></iframe> ,但根据您的设置,它仍然有用。

创建轮播后,将处理程序绑定到幻灯片事件:

<iframe> id

Here's a working JSFiddle不使用player_id$myCarousel.on("slide.bs.carousel", function (event) { // Bootstrap carousel marks the current slide (the one we're exiting) with an 'active' class var $currentSlide = $myCarousel.find(".active iframe"); // exit if there's no iframe, i.e. if this is just an image and not a video player if (!$currentSlide.length) { return; } // pass that iframe into Froogaloop, and call api("pause") on it. var player = Froogaloop($currentSlide[0]); player.api("pause"); }); ,如上文编辑中所述。