Ошибка при использовании Froogaloop API для перемотки 30 секунд

Я использую Vimeo Froogaloop API для управления встроенным видео Vimeo. Я создал несколько кнопок, которые возвращаются на 30 секунд, назад на 60 секунд, вперед на 30 секунд и вперед на 60 секунд, используя следующий код. Все работает отлично но...

Каждый раз, когда я нажимаю на одну из кнопок "Назад", я получаю около 33 случаев следующей ошибки. Ошибка не возникает, когда я нажимаю на кнопки "Вперед".

Почему появляется эта ошибка и как я могу исправить этот код, чтобы ошибка не возникала?

JSFIDDLE
http://jsfiddle.net/serkyen/553htq60/8/

ОШИБКА
Uncaught Error: секунды должны иметь положительное смещение меньше продолжительности видео (не определено).

JAVASCRIPT

window.onload = (function() {

var iframe_player = jQuery('#player_1')[0];
var player_1 = $f(iframe_player);

player_1.addEvent('ready', function() {
        player_1.addEvent('pause', onPause_part1);
        player_1.addEvent('finish', onFinish_part1);
        player_1.addEvent('playProgress', onPlayProgress_part1);
});

function onPlayProgress_part1(data, id) {

    jQuery("#part1-60s-b").click(function(){    
        player_1.api('seekTo', data.seconds - 60);
        player_1.api('play');       
    });

    jQuery("#part1-30s-b").click(function(){
        player_1.api('seekTo', data.seconds - 30);
        player_1.api('play');
    });

    jQuery("#part1-30s-f").click(function(){    
        player_1.api('seekTo', data.seconds + 30);
        player_1.api('play');       
    });

    jQuery("#part1-60s-f").click(function(){    
        player_1.api('seekTo', data.seconds + 60);
        player_1.api('play');       
    });
}
}



HTML

<a id="part1-60s-b" href="javascript:void(0);" class="simple-button">Back 60s</a>
<a id="part1-30s-b" href="javascript:void(0);" class="simple-button">Back 30s</a>
<a id="part1-30s-f" href="javascript:void(0);" class="simple-button">Forward 30s</a>
<a id="part1-60s-f" href="javascript:void(0);" class="simple-button">Forward 60s</a>


1 ответ

Здесь происходит пара вещей:

  1. Вы настраиваете нового слушателя в ссылках для каждого события прогресса, поэтому их быстро насчитывается сотни. Вы можете исправить это, поместив обработчики щелчков внутри функции обратного вызова для события ready.

  2. Убедитесь, что вы не передаете время поиска, которое меньше 0 или больше, чем продолжительность видео. Игрок будет игнорировать любые вызовы seekTo, находящиеся за пределами этих границ.

Другие вопросы по тегам