2

私は友人のサイトで、彼の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フレームワークでinit関数を使用することになっていることを読みましたが、Froogaloop.fn.init(それに到達する唯一の方法)を実行すると、getAttributesプロパティが含まれていないことがわかりました。これはすべてかなり混乱しています。私の主な質問は、これらのiframeをfroogaloopで初期化するにはどうすればよいですか?

ノート。$はワードプレスに干渉するように見えるので、私のバージョンのライブラリでは$fをfroogaLoopに置き換えました。

4

1 に答える 1

1

ここにいくつか問題があります。

(表示されていませんが、froogaloop jsファイルが正しく含まれていると想定しています。含まれていないと、getAttributesエラーが発生しません。)

自分のサイトで機能するコードスニペットを紹介します。これは、独自のコードに組み込むことができます。

これがvimeoプレーヤーをロードする私のサイトからの関連するhtmlです:

<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をアクティブ化するためにsrcに&api=1を追加する必要があるということです。

それが完了すると、この標準のjQueryによってiframeが取得されます。

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

これにより、froogaloopプレーヤーが初期化されます。

player = $f(iframe);

これをコンソールでテストすると、この時点で次のように表示されます。

e.fn.e.init

次に、任意のapiコマンドを実行できます。たとえば、次のコマンドを実行してビデオを再生できます。

player.api('play');

参考までに、無効なオブジェクトでfroogaloop apiを実行しようとすると、getAttributesエラーが表示されます。上記のコードを見ると、player_idがどこに設定されているかが明確ではないため、おそらくそれが問題です。

mkm

于 2012-10-16T04:46:56.513 に答える