Youtube iframe API出现问题

时间:2016-09-17 11:36:29

标签: api audio iframe youtube

我目前有一个博客,当您使用youtube iframe加载页面时播放背景音乐:

<iframe id="background-music" width="0" height="0" src="https://www.youtube.com/embed/VOR8reYWvx8?rel=1&autoplay=1&enablejsapi=1" xframeborder="0" allowfullscreen></iframe>

我也手动导入了youtube iframe api:

<script src="http://url_to_script/iframe_api.js"></script>

我的博客上还有其他歌曲,我想在播放其他歌曲时暂停播放背景歌曲。根据{{​​3}}上的说明,我有以下代码,但它根本不起作用。

$(".tumblr_audio_player").contents().find('.play_button').click(function() 
                console.debug(YT);

                player = new YT.player("background-music", {
                    events: {
                      'onReady': function() { console.log("player is ready") },
                      'onStateChange': function() { console.log("player has changed state"); }
                    }
                });
                player.stopVideo();

我不确定我做错了什么。我不知道是否需要onReady和onStateChange(我不需要它们),但是如果没有第二个对象参数它就不能工作,所以我不确定我是什么&#39;我应该这样做。

1 个答案:

答案 0 :(得分:0)

好吧,我知道发生了什么事。代码大多是正确的,但是,初始化YT.Player对象需要时间,这正是onReady回调的用途。

确保在执行任何操作之前初始化YT对象。如果你将pauseVideo放在onReady回调中,它将正常工作。所以要回答我原来的问题,onReady是绝对必要的:

player = new YT.Player("background-music", 
{   events: {
        onReady: function() {
            player.stopVideo();
        }
    }
});