【发布时间】:2015-01-29 22:18:35
【问题描述】:
在我的网站上以轮播形式播放了多个 youtube 视频。当用户点击 youtube 视频时,我想停止轮播的自动滚动。这是我正在编写的代码,它抛出了 "players[player_id].getPlayerState() is not a function" 错误。
另外,youtube 库正在从第三方 javascript 加载到我的网站中。
玩家 = {};
window.onYouTubeIframeAPIReady = function(){
$('.youtube-video iframe').each(function() {
players[$(this).attr('id')] = new YT.Player($(this).attr('id'), {
events: {
'onStateChange': onPlayerStateChange($(this).attr('id'))
}
});
});
}
function onPlayerStateChange(player_id){
return function(event) {
if(players[player_id].getPlayerState() == 3 ||players[player_id].getPlayerState() == 1) {
//stop the auto scrolling
}
if(players[player_id].getPlayerState() == 0 || players[player_id].getPlayerState() == 2) {
//start auto scrolling.
}
}
}
如果您能在我的代码中找到问题,请告诉我。提前致谢!
【问题讨论】:
-
添加html代码?你在哪里通过视频的ID?什么时候播放视频?
-
我正在传递视频的 id,例如“$(this).attr('id')”。
-
你是如何解决这个问题的?我想我遇到了同样的问题,从第三方脚本加载 YouTube Iframe API 并获取“未定义”方法(实际上所有对象成员都被修改为一个字母的名称)。
标签: youtube-api youtube-javascript-api youtube-iframe-api