【问题标题】:Detecting when a youtube video finishes检测 youtube 视频何时结束
【发布时间】:2013-08-24 01:30:44
【问题描述】:

我知道这个话题有几个问题。我什至得到了很好的答案here

问题如下。我有一段无法更改的代码,它显示了 youtube 视频。我必须适应它。

问题是 onPlayerStateChange() 函数永远不会启动。知道为什么会这样吗?

<script src="http://www.youtube.com/player_api"></script>
<script type="text/javascript">
var ytPlayer;
var idplayer;
function onYouTubePlayerReady(playerId) {
    ytPlayer = document.getElementById("ytPlayer");
}

function pauseVideo() {
  if (ytPlayer) {
    ytPlayer.stopVideo();
  }  
}

// when video ends
function onPlayerStateChange(event) {        
    if(event.data === 0) { 
    idplayer=document.getElementById("a_TMBLRWDLH").href;
        window.location.assign(idplayer);
    }
}

j$(document).ready(function(){


    j$('#' + Bnr_vars[0].banner).click(function(){

        if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i)))
{
    var info='<iframe width=\"600\" height=\"338\" src=\"http://www.youtube.com/embed/0Bmhjf0rKe8?rel=0&wmode=transparent&modestbranding=1&autoplay=1&enablejsapi=1\" frameborder=\"0\" allowfullscreen></iframe>';
    j$('#player').html(info);
}

});
</script>

【问题讨论】:

  • 专业提示:简化您的代码并确保其正常工作,然后做您喜欢的事情。以这种方式调试更容易,并且您不必过多地追溯您的步骤。它在链接答案的示例中显然有效,因此我建议您从那里开始。看看这个link
  • 是的。感谢那。文档说我需要有 &enablejsapi=1 ,这样我就可以调用事件函数。但它不起作用。

标签: javascript youtube-api


【解决方案1】:

我有解决方案,以防万一帮助某人。我只需要在希望显示对话框时创建新的 YT.Player。

j$(document).ready(function(){
    var Bnr_vars = [
        {
            "banner" : "teamworkRowersDLVidOpener",
            "closer" : "teamworkRowersDLVidCloser",
            "dialog" : "teamworkRowersDLVidDialog",
            "auto"   : "false"              // auto open TRUE or FALSE?
        }
    ];

    lightboxCreate(Bnr_vars); // create lightboxes based on array above 

    j$('#' + Bnr_vars[0].banner).click(function(){

        if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i)))
        {
            var info=new YT.Player('player', {
                height: '338',
                width: '600',
                videoId: '_Zmr0cUeNBY',
                playerVars : {
                    playerapiid:'player1',
                    rel: '0',
                    wmode: 'transparent',
                    modestbranding: '1'
                },
                events: {
                    'onReady': onPlayerReady,
                    'onStateChange': onPlayerStateChange
                }
            });
            j$('#player').html(info);
        }

    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多