Проблемы с управлением фреймами 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);
});)

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

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


person d4rklit3    schedule 25.12.2011    source источник


Ответы (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:

player = $f(iframe);

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

e.fn.e.init

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

player.api('play');

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

мкм

person manishie    schedule 16.10.2012