YouTube player getCurrentTime () и getVideoData () не является функцией - PullRequest
0 голосов
/ 21 июня 2019

У меня есть игрок на YouTube с событием onstatechange.Событие onstate change работает так, что я вижу данные игрока и могу определить состояние игрока (воспроизведение, пауза и т. Д.), Но методы, которые я должен использовать, в частности getCurrentTime() и getVideoData(), это:throwing являются выбросом ошибки «это не функция».

Это мой 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;
});

Мне нужно указать заголовок видео и текущее время, чтобы отслеживать ход видео в аналитике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...