Youtube播放器getCurrentTime()和getVideoData()不是函数

时间:2019-06-21 16:36:16

标签: javascript video youtube

我有一个带onstatechange事件的youtube播放器。开启状态更改事件的工作方式是,我可以查看播放器数据,并且可以确定播放器状态(播放,暂停等),但是我应该可以使用的方法,特别是getVideoData()和{{ 1}}正在抛出错误“不是函数”。

这是我的JavaScript,请注意,它已配置为在一个页面上处理多个youtube视频,但我认为这并不重要。

var players = [];
var iframes = $('iframe[src*="youtube"]');
iframes.each(function (index) {
    var iframeId = "embedded_video" + index;
    $(this).attr('id', iframeId);
    players[index] = new YT.Player(iframeId, {
        events: {
            'onStateChange': function (evt) {
                var player = evt.target;
                var video_data = player.getVideoData(); //FAILING
                var pos = player.getCurrentTime() | 0; // FAILING
                var videoID = video_data.title;
                window.clearInterval(window.trakkInterval);

                if (evt.data == YT.PlayerState.PLAYING) {
                    if (evt.target._initialPlay && trakkIntial) {
                        // track play
                        console.log("PLAY");
                    } else if (evt.target._seekFlag === false && pos != 0) {
                        // track resume
                        console.log("RESUME");
                    }

                    evt.target._seekFlag = false;
                    trakkProgress(evt, videoID); // implement
                    evt.target._pauseFlag = false;
                } else if (evt.data === YT.PlayerState.ENDED) {
                    console.log("COMPLETE");
                    evt.target._initialPlay = true;
                    evt.target._seekFlag = false;
                } else if (evt.data = YT.PlayerState.PAUSED && evt.target._pauseFlag === false) {
                    console.log("PAUSE");

                }
            }
        }
    });
    players[index]._pauseFlag = false;
    players[index]._initialPlay = true;
    players[index]._seekFlag = false;
});

我需要视频标题和当前时间,以便能够在分析中跟踪视频进度。

0 个答案:

没有答案