使用Youtube API通过播放另一个来停止视频

时间:2017-12-05 10:10:08

标签: youtube-api

当我在同一页面上播放另一个视频时,我试图停止使用YouTube视频,我发现了这个: stackoverflow fiddle-example 但是,当我尝试在我的网页上使用它时,它不起作用: my_test

SCRIPT

<script>
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

function onYouTubeIframeAPIReady() {
    var $ = jQuery;
    var players = [];
    $('iframe').filter(function(){return this.src.indexOf('http://www.youtube.com/') == 0}).each( function (k, v) {
        if (!this.id) { this.id='embeddedvideoiframe' + k }
        players.push(new YT.Player(this.id, {
            events: {
                'onStateChange': function(event) {
                    if (event.data == YT.PlayerState.PLAYING) {
                        $.each(players, function(k, v) {
                            if (this.getIframe().id != event.target.getIframe().id) {
                                this.pauseVideo();
                            }
                        });
                    }
                }
            }
        }))
    });
}
</script>

HTML

One: 
<iframe frameborder="0" allowfullscreen="1" title="YouTube video     player" width="160" height="100" src="http://www.youtube.com/embed    /zXV8GMSc5Vg?enablejsapi=1&amp;origin=http%3A%2F%2Ffiddle.jshell.net">    </iframe>
<br/>
Two:
<iframe frameborder="0" allowfullscreen="1" title="YouTube video player" width="160" height="100" src="http://www.youtube.com/embed/LTy0TzA_4DQ?enablejsapi=1&amp;origin=http%3A%2F%2Ffiddle.jshell.net">    </iframe>

怎么了?我在谷歌开发者上创建了这个项目,我已经创建了API密钥,但我不知道我必须把它放在哪里。

2 个答案:

答案 0 :(得分:0)

您忘记添加jquery lib(https://code.jquery.com/

答案 1 :(得分:0)

解决 问题在于,在示例中他们使用了&#34;起源&#34;参数,此参数(如果已设置)可避免将恶意第三方JavaScript代码引入页面,从而可以控制YouTube播放器。

SRC =&#34; HTTP://www.youtube.com/embed/LTy0TzA_4DQ enablejsapi = 1&安培;的原点= HTTP%3A%2F%2Ffiddle.jshell.net &#34 ;

这就是为什么代码在小提琴页面上工作但不在我的工作。 所以我用主页的完整URL改变了这个原始路径,现在它可以工作了!