JQuery цикл - YouTube видео не приостанавливает слайд-шоу при воспроизведении? - PullRequest
0 голосов
/ 09 мая 2011

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

Iнашел этот пример: Как мне прикрепить обработчик событий jQuery к фильму YouTube?

, который, казалось, работал так же, как и когда я интегрировал его в свой собственный код: http://jsfiddle.net/waffl/qqWT8/18/

Теперь я не уверен, что происходит, но ни один пример, похоже, не работает сейчас.

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

1 Ответ

0 голосов
/ 24 декабря 2012

У меня была та же проблема, я сделал несколько изменений в вашей скрипке и смог заставить ее работать.Вот код JavaScript:

var slideshowContainer = $('#slideshow');

window.handlePlayerStateChange = function(state) {
    switch (state) {
    case 1:
        // Video has begun playing/buffering
        slideshowContainer.cycle('pause');
        break;
    case 3:
        // Video has begun playing/buffering
        slideshowContainer.cycle('pause');
        break;
    case 2:
        // Video has been paused/ended
        slideshowContainer.cycle('resume');
        break;
    case 0:
        // Video has been paused/ended
        slideshowContainer.cycle('resume');
        break;
    }
}

window.onYouTubePlayerReady = function(id) {
    var player = $('#' + id)[0];

    player.addEventListener('onStateChange', 'handlePlayerStateChange');
}

var videos = ['uCr--23_AW0', 'd8h5ZuPQWZw', 'ur1_aVRLLfA', 'rDcQtg6Bgvo', 'fgJ6DA50thw', 'MD3UldIQaUo', 'IwVpZGgWdWk', 'TvCUvVkGyqQ', 'FGzRvYU0e3Q'];

var params = {
    allowfullscreen: 'true',
    allowscriptaccess: 'always',
    wmode: 'opaque'
};

for (var i = 0; i < videos.length; i++) {
    var id = 'video-' + i;

    var atts = {
        id: id,
        name: id
    };

    slideshowContainer.append($('<div/>')
        .addClass('video-wrapper')
        .append($('<div/>')
                .attr('id', id)
               )
    );

    swfobject.embedSWF('http://www.youtube.com/v/' + videos[i] + '?enablejsapi=1&playerapiid=' + id + '&version=3', id, '540', '375', '9.0.0', null, null, params, atts);
}

slideshowContainer.cycle({
    fx: 'fade',
    timeout: 8000,
    next: '#next',
    prev: '#prev'
});​

и рабочий пример: http://jsfiddle.net/jackbrown/qqWT8/45/

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