Проблемы с контролем над фреймами Vimeo с помощью jquery, froogaloog и wordpress

Я работал над сайтом друзей, пытаясь исправить его реализацию flexslider, чтобы при воспроизведении видео vimeo и переключении пользователя на другой слайд это видео приостанавливалось. У меня возникают проблемы с использованием Froogaloop и JQuery в этом контексте. Вот некоторый код, который я пробовал:

(function () { jQuery('.flexslider').flexslider({
        slideshowSpeed: slideshowDelay+"000",  
        directionNav: false,                    
        animation: "fade" , 
        after: function (slider)
        {
            console.log("next");
            var currentSlide = slider.currentSlide;
            var slides = slider.slides;

            jQuery(slides).each( function (i) 
            {
                if(i != currentSlide)
                {
                    var slide = jQuery(slides[i]);
                    jQuery(slide).attr({class : 'slide_selector'})
                    var vimeo = jQuery('.slide_selector iframe');
                    if(vimeo.length !== 0)
                    {

                        var src = jQuery(vimeo).attr('src')
                        var controlObject = {"method" : "pause" }; 
                        var domWindow = vimeo[0].contentWindow;
                        jQuery(vimeo[0]).bind('ready' , function 
                        {
                            console.log("PlayerId: "+ player_id)
                            froogaLoop(player_id).api('pause');
                        });
                    }
                }
            })                                  
        }
    });
    showProject(projectSlug);
});)

Так что это никак не сработало. Я прочитал, что я должен был использовать функцию init в среде Froogaloop, но запуск Froogaloop.fn.init (единственный способ достичь этого) сказал мне, что ничего, что я в нее положил, не имеет свойства getAttributes. Это все довольно запутанно. Я думаю, что мой главный вопрос - как мне инициализировать эти iframe с помощью froogaloop?

нота. Я заменил $f на froogaLoop в моей версии библиотеки, поскольку $, похоже, мешает работе WordPress.

1 ответ

Я вижу несколько проблем здесь.

(Хотя это не показано, я предполагаю, что вы правильно включили js-файл froogaloop, иначе вы не увидели бы ошибку getAttributes.)

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

Вот соответствующий HTML с моего сайта, который загружает проигрыватель Vimeo:

<iframe id="vvq-62-vimeo-1" src="http://player.vimeo.com/video/50138878?title=1&byline=1&portrait=0&fullscreen=1&api=1"></iframe>

Первое, что нужно отметить, это то, что вы должны добавить &api=1 к src, чтобы активировать API.

Как только вы это сделаете, этот стандартный jQuery предоставит вам iframe:

iframe =jQuery('#vvq-62-vimeo-1')[0];

Это запустит плеер froogaloop:

player = $f(iframe);

Если вы проверите это в консоли, то на этом этапе вы должны увидеть:

e.fn.e.init

Затем вы можете запустить любую из команд API, например, эту команду для воспроизведения видео:

player.api('play');

К вашему сведению, ошибка getAttributes появляется при попытке запустить API Froogaloop для недопустимого объекта. Глядя на ваш код выше, не ясно, где устанавливается player_id, так что, возможно, в этом проблема.

мКМ

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