gpt4 book ai didi

javascript - 播放新视频时停止所有视频

转载 作者:数据小太阳 更新时间:2023-10-29 05:02:47 26 4
gpt4 key购买 nike

我需要一些关于 Youtube API 和嵌入视频的帮助。单击新的 youtube 视频时,我想停止在当前页面上运行的所有 iframe 视频(这里我只拍摄了 3 个,但有几个视频)。在某个时间点,应该只运行一个 iframe youtube 视频。我已经阅读了文档 [https://developers.google.com/youtube/js_api_reference][1] 并且能够写到这里......

更新:

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="http://www.youtube.com/player_api"></script>
<script type="text/javascript">
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}

var done = false;
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING && !done) {
alert("hi5");
player1.stopVideo();
player2.stopVideo();
done = true;
}
}
</script>
</head>
<body>
<div>TODO write content</div>
<ul class="image-grid" id="list">
<li>
<iframe id="player" width="385" height="230" src="http://www.youtube.com/embed/erDxb4IkgjM?rel=0&wmode=Opaque&enablejsapi=1;showinfo=0;controls=0" frameborder="0" allowfullscreen></iframe>
</li>
<li>
<iframe id="player1" width="385" height="230" src="http://www.youtube.com/embed/wSrA5iQGlDc?rel=0&wmode=Opaque&enablejsapi=1;showinfo=0;controls=0" frameborder="0" allowfullscreen></iframe>
</li>
<li>
<iframe id="player2" width="385" height="230" src="http://www.youtube.com/embed/c7b_WLkztXc?rel=0&wmode=Opaque&enablejsapi=1;showinfo=0;controls=0" frameborder="0" allowfullscreen></iframe>
</li>
</ul>
</body>
</html>

更新

  1. onStateChange 事件没有被触发(工作)
  2. 在这个例子中我有 3 个视频,实际上它有更多的视频而不是为每个视频写 onPlayerStateChange.. 是否可以为所有视频使用一个数组.. 在函数 onPlayerStateChange 中,写 player[] .stopVideo() 和 this.playvideo().. 这类东西..(需要帮助)请看这个 fiddle http://jsfiddle.net/LakshmiV/kn5Sf/请帮忙。

最佳答案

你可以这样做......

给每个 iframe 一个类,以便它可以被识别为 iframe for youtube player。这里我给了“yt_players”

现在您可以使用下面的代码...

<script type="text/javascript">
players = new Array();

function onYouTubeIframeAPIReady() {
var temp = $("iframe.yt_players");
for (var i = 0; i < temp.length; i++) {
var t = new YT.Player($(temp[i]).attr('id'), {
events: {
'onStateChange': onPlayerStateChange
}
});
players.push(t);
}
}
onYouTubeIframeAPIReady();

function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING) {
var temp = event.target.a.src;
var tempPlayers = $("iframe.yt_players");
for (var i = 0; i < players.length; i++) {
if (players[i].a.src != temp)
players[i].stopVideo();
}
}
}
</script>

已经更新了代码...这应该对你有帮助。

在这里查看... http://jsfiddle.net/anubhavranjan/Y8P7y/

关于javascript - 播放新视频时停止所有视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14890267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com