我目前有一个博客,当您使用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;我应该这样做。
答案 0 :(得分:0)
好吧,我知道发生了什么事。代码大多是正确的,但是,初始化YT.Player对象需要时间,这正是onReady回调的用途。
确保在执行任何操作之前初始化YT对象。如果你将pauseVideo放在onReady回调中,它将正常工作。所以要回答我原来的问题,onReady是绝对必要的:
player = new YT.Player("background-music",
{ events: {
onReady: function() {
player.stopVideo();
}
}
});