在jQuery中的Flowplayer上设置autoPlay false

时间:2011-11-15 22:13:51

标签: jquery flowplayer

我正在使用jQuery和Flowplayer将FLV文件的链接转换为嵌入式视频,如下所示:

$(document).ready(function() {
    if($('a[type^="video"]').length > 0) {
        $('a[type^="video"]').each(function() {
            var video_path = $(this).attr('href');
            var video_box  = $(this).parent();
            video_box.html('');
            video_box.css('width', '680px');
            video_box.css('height', '460px');
            video_box.flowplayer('/sites/default/files/flowplayer-3.2.7.swf', video_path);
        });
    }
});

除了所有视频同时开始播放外,此功能正常。我尝试过几种不同的方式添加autoPlay: false,但到目前为止还没有一种方法可行。从文档中看起来我应该能够这样做:

video_box.flowplayer('/sites/default/files/flowplayer-3.2.7.swf', video_path, {clip: {autoPlay: false}});

但这不起作用。

4 个答案:

答案 0 :(得分:3)

@Kevin

您不需要在flowplayer-a-tag周围添加额外的div。您需要做的就是在a-tag上设置display:block。

所以你的代码可以压缩到这个:

    $('a[type^="video"]').each(function(i) {
        $(this).css({'width': '680px','height': '460px','display': 'block'}).attr('id', 'player-' + i);
        var player = $f('player-' +i, '../flowplayer.commercial-3.2.7.swf', {
            clip: {
                autoPlay: false
            }
        });
    });

答案 1 :(得分:2)

您是否尝试过documentation中使用的语法?在你的每个循环中,你可以做到:

$f(this.parentNode, {src: "flowplayer.swf"}, {
  clip: {
    url: video_path
    autoPlay: false,
    onStart: function(clip){alert("Clip "+ clip.url);}  // attach event listener
  },
});

附注:行if($('a[type^="video"]').length > 0) {不是必需的,因为jQuery只会遍历元素,如果有的话,否则它只是跳过块。

答案 2 :(得分:2)

我让它像这样工作:

$(document).ready(function() {
    $('a[type^="video"]').each(function(index) {
        var video_path = $(this).attr('href');
        var video_box  = $(this).parent();
        video_box.html('');
        video_box.css('width', '680px');
        video_box.css('height', '460px');
        video_box.attr('id', 'player-' + index);
        $f(video_box.attr('id'), '/sites/default/files/flowplayer-3.2.7.swf', {
            clip: {
                autoPlay: false,
                url: video_path
            }
        });
    });
});

$f()函数起作用的关键是给它一个id。我使用的div没有id,所以我给了他们一行video_box.attr('id', 'player-' + index);

我仍然不知道为什么我无法获得jQuery object.flowplayer()方法来接受autoPlay: false属性。但我想使用$f()函数同样好。谢谢你的帮助。

答案 3 :(得分:1)

您可以向flowplayer传递一个选项对象,其中一个是自动播放,以下是此文档:http://flowplayer.org/documentation/configuration/

这是上页的一个例子:

flowplayer("player", {
    src: "flowplayer.swf"
}, {
    clip:  {
        autoPlay: false,
        autoBuffering: true
    }
});

Flowplayer有许多可以在初始化时设置的选项,包括onPauseonPlay之类的事件绑定。