Отслеживание времени игрока Vimeo с помощью скрипта

Я получаю видео с сервера Vimeo, чтобы воспроизводить видеокурсы на своем веб-сайте. При нажатии тега воспроизводится видео во всплывающем окне.

<a class="btn btn-primary btn-lg popup-vimeo btn-video" href="<?php echo 'https://player.vimeo.com/video/' . $vdoid; ?>">
   <i class="fa fa-play" aria-hidden="true" style="font-weight:600;" id="<?php echo "vdo_" . $vv; ?>"></i></a>

Теперь я хочу отслеживать текущее время видео с помощью скрипта. Но при нажатии на этот тег загружается отдельная страница просмотра (при проверке) в виде всплывающего окна.

Я попытался отследить игрока и получить текущее время воспроизведения от игрока, и я попытался использовать этот скрипт.

<script src="https://player.vimeo.com/api/player.js"></script>

<script>
$(document).on('click', '.btn-video', function ()
{
    var id = $(this).attr("id");
    var iframe = document.getElementById(id);
    var vPlayer = new Vimeo.Player(iframe);

    setInterval(function ()
    {
        console.log(iframe);
        console.log(vPlayer);
        var currtym = vPlayer.getCurrentTime();
        console.log(currtym);
        var currentTime = vPlayer.currentTime;
        console.log(currentTime);
    }, 1000);
});

But im running out of ideas. Someone please help me to figure it out.!! Thanks...


person Venky    schedule 28.01.2019    source источник


Ответы (2)


Я нашел еще одно лучшее решение для получения endTime, а также процента прогресса видео. Может поможет кому...

var vdo_play = "";
$(document).on('click', '.btn-video', function ()
{
    if (vdo_play)
    {
        clearInterval(vdo_play);
    }
    var player = new Vimeo.Player($(".mfp-iframe")[0]);
    var currentPos, percentage, vdoEndTym = "";
    vdo_play = setInterval(function ()
    {
        player.on('timeupdate', function (getAll)
        {
            currentPos = getAll.seconds; //get currentime
            vdoEndTym = getAll.duration; //get video duration
            percentage = (getAll.percent * 100)+"%";
            console.log('currentPos: ' + currentPos);
            console.log('percentage: ' + percentage);
        });
        player.on('ended', function ()
        {
            clearInterval(vdo_play);
        });
    }, 1000);
});
person Venky    schedule 29.01.2019

person    schedule
comment
Ваш код не работает. Вы вызываете объект VPlayer, а затем просто объект player. Который из них? Даже когда я исправляю эти ошибки, console.log(currentTime) показывает только значение «0», как было установлено выше. - person Mike Szostech; 10.06.2020