sat*_*tya 7 javascript youtube api youtube-api
我需要Youtube API的一些帮助并嵌入视频.我想在点击新的YouTube视频时停止当前页面上运行的所有iframe视频(此处我只拍摄了3个,但有几个视频).在某个时间点,只应运行一个iframe YouTube视频.我已经去了thruogh文档[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>
Run Code Online (Sandbox Code Playgroud)
更新
你可以这样做......
为每个iframe提供一个类,以便它可以被识别为youtube播放器的iframe.在这里,我给了"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>
Run Code Online (Sandbox Code Playgroud)
更新了代码......这应该对您有所帮助.
在这里看到它... http://jsfiddle.net/anubhavranjan/Y8P7y/
Coby在/sf/answers/928236431/ 上对类似问题的出色回答
使用属性选择器,您可以定位来自 Youtube 的任何 iframe,然后使用jQuery 的 each您可以遍历所有iframe 。
$(function(){
$('iframe[src*="http://www.youtube.com/embed/"]').each(function(i) {
this.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*');
});
Run Code Online (Sandbox Code Playgroud)
});
| 归档时间: |
|
| 查看次数: |
17966 次 |
| 最近记录: |