当另一个播放时停止任何嵌入的YouTube iframe
我在我的页面中嵌入了大约10个YouTube iframe,所有这些都使用他们自己的自定义播放/暂停按钮。我已经使用这个解决方案,开始http://jsfiddle.net/buuuue/dzroqgj0/,但我不知道如何调整这块代码停止,如果开始另一正在播放任何其他视频的......当另一个播放时停止任何嵌入的YouTube iframe
function stopVideo(player_id) {
if (player_id == "player1") {
player2.stopVideo();
} else if (player_id == "player2") {
player1.stopVideo();
}
}
例如,如果播放器1当前正在播放,并且播放器3被播放,我希望播放器1停止播放。我也研究过这个解决方案https://stackoverflow.com/a/38405859/1798756,但我想我需要通过JS创建播放器,这样我才能创建自定义播放/暂停按钮。
在此先感谢您的帮助!
创建播放器后,将它们推到数组上。
var vids =[];
player1 = new YT.Player('player1', {
//stuff
});
vids.push(player1);
player2 = new YT.Player('player2', {
// stuff
});
vids.push(player2);
....
..
playerN = new YT.Player('playerN', {
// stuff
});
vids.push(playerN);
每个球员对象的ID可以通过其a.id
属性来访问(a
本身就是一个对象,id
是一个属性(字符串))
现在,当用户播放你只是暂停所有给定的球员除了另外一个正在播放(ID其中你stopVideo
获得)。既然你有ID很容易
function stopVideo(player_id) {
for(var i=0;i<vids.length;i++){
if (player_id !=vids[i].a.id)
vids[i].stopVideo();
}
}
例子: - http://jsfiddle.net/4t9ah1La/
如果不通过脚本创建的球员而只是嵌入的I帧,然后通过vbence提到this答案是不够的,下面是与改进演示通过Jennie
例建议: - http://jsfiddle.net/fyb7fyw1/
所有学分给各自的原作者
这太棒了!非常感谢! – user1798756
我相信我必须通过脚本创建球员,以便我可以附加自定义播放/暂停按钮。或者我错了? – user1798756
是的,你可以使用任何一种方式。对于基于脚本的播放器,它只是'player1.playVideo();'和'player1.pauseVideo();'。但是如果你自己嵌入
可能重复[暂停YouTube iframe嵌入播放另一个时](http://stackoverflow.com/questions/14942916/pause-youtube-iframe-embed-when-playing-another) – Dekel
是的,我已经研究过这个解决方案,在我的文章中提到过,但我正在尝试添加两个以上的YouTube iframe,但并不确定最佳方式。 – user1798756
使用班级而不是身份证号码 – Dekel