相关疑难解决方法(0)

YouTube iframe API:如何控制已经在HTML中的iframe播放器?

我希望能够控制基于iframe的YouTube播放器.这些播放器已经在HTML中,但我想通过JavaScript API控制它们.

我一直在阅读iframe API文档,文档解释了如何使用API​​向页面添加新视频,然后使用YouTube播放器功能控制它:

var player;
function onYouTubePlayerAPIReady() {
    player = new YT.Player('container', {
        height: '390',
        width: '640',
        videoId: 'u1zgFlCw8Aw',
        events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

该代码创建一个新的播放器对象并将其分配给"播放器",然后将其插入#container div中.然后,我可以在"播放器"和呼叫操作playVideo(),pauseVideo()就可以了,等等.

但我希望能够对已经在页面上的iframe播放器进行操作.

我可以使用旧的嵌入方法很容易地做到这一点,例如:

player = getElementById('whateverID');
player.playVideo();
Run Code Online (Sandbox Code Playgroud)

但这不适用于新的iframe.如何在页面上分配iframe对象,然后在其上使用API​​函数?

javascript youtube-api youtube-javascript-api

144
推荐指数
4
解决办法
17万
查看次数

在JavaScript或jQuery中收听Youtube事件

我有一个滑块,其中包含4个通过iframe嵌入代码嵌入的YouTube视频

http://www.youtube.com/embed/'.$i.'?enablejsapi=1

我试图让onStateChange四个视频中的任何一个事件调用我调用的函数stopCycle(),当视频开始播放时,它将停止滑块.iframe没有id.我不确定如何正确地捕捉这个事件,并且可以使用任何关于我做错的建议.

<script charset="utf-8" type="text/javascript" src="http://www.youtube.com/player_api"></script>

var playerObj = document.getElementById("tab2"); // the container for 1 of the 4 iframes

playerObj.addEventListener("onStateChange", "stopCycle");

function stopCycle(event) {
    alert('Stopped!');
}
Run Code Online (Sandbox Code Playgroud)

javascript youtube jquery events youtube-api

19
推荐指数
1
解决办法
3万
查看次数

YouTube API目标(多个)现有iframe

我正在尝试了解如何使用YouTube API定位现有的iframe(即不使用脚本构建iframe).

像往常一样,谷歌没有提供足够的API示例,但解释说有可能,这里http://code.google.com/apis/youtube/iframe_api_reference.html

这是我正在尝试做的一个例子 - 缩略图下面的视频应该播放.我几乎在那里,但只有第一个视频播放...

http://jsfiddle.net/SparrwHawk/KtbYR/2/

javascript youtube-api youtube-javascript-api

16
推荐指数
1
解决办法
3万
查看次数

自动播放youtube和soundcloud相互嵌入

我有一个音乐博客,其中包含一系列youtube和soundcloud嵌入.

我想一个接一个地自动播放页面上的所有嵌入内容.换句话说,在youtube嵌入后我已经玩完了,我希望下一个嵌入式开始播放,无论是来自soundcloud还是youtube,反之亦然.

呈现的HTML如下所示:

<span class="soundcloud_embed" id="soundcloud_post_308">
  <iframe id="ui-id-1" width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F103518792&show_artwork=true&secret_token=s-LnOTK"></iframe>
</span>

<span class="youtube_embed" id="youtube_post_309">
  <iframe id="ui-id-2" width="528" height="190" src="//www.youtube.com/embed/Y3CYKXBEtf0" frameborder="0" allowfullscreen></iframe>
</span>

<span class="youtube_embed" id="youtube_post_310">
  <iframe id="ui-id-3" width="528" height="190" src="//www.youtube.com/embed/yMx1FnkrhYc" frameborder="0" allowfullscreen></iframe>
</span>
Run Code Online (Sandbox Code Playgroud)

我从这个来源获得了帮助:在播放Soundcloud时暂停Youtube嵌入

要跟踪页面上的哪些玩家,他们属于哪个api,以及他们当前正在玩哪个玩家:

var playerCurrentlyPlaying = {"api":null,"frameID":null};
var players = {"yt":{},"sc":{}};
Run Code Online (Sandbox Code Playgroud)

我需要定义一个通用的playNext函数,该函数在playerCurrentlyPlaying结束时调用.根据下一个嵌入的api,playNext函数必须执行正确的播放命令.为了找到下一个嵌入的函数,函数可能会将currentPlaying iframe的ID增加1.这样如果id ="ui-id-2"刚刚结束,则id ="ui-id-3"应该播放.

有时,这些YouTube视频会崩溃并说出"视频不再存在"或"上传者已在您所在的国家/地区无法使用"等内容.在这些情况下,我如何检查崩溃并跳到下一个递增的ID(例如id ="ui-id-4")?

此视频已不存在:

<span class="youtube_embed" id="youtube_post_311">
  <iframe id="ui-id-4" width="528" height="190" src="//www.youtube.com/embed/Ym3DgqNTzyc" frameborder="0" allowfullscreen></iframe>
</span>
Run Code Online (Sandbox Code Playgroud)

javascript jquery youtube-api soundcloud ruby-on-rails-3

1
推荐指数
1
解决办法
2668
查看次数