为什么我的播放列表不起作用?

时间:2010-08-25 17:23:36

标签: javascript flowplayer playlist

Flowplayer forums上交叉发布,但尚未回复,所以我希望有人可以提供帮助。

我使用播放列表插件完全没有成功。我已经密切关注http://flowplayer.org/plugins/javascript/playlist.html处的示例,我得到了初始剪辑,但播放列表插件似乎没有注册。视频加载和播放,因此FlowPlayer正确加载,但播放列表不会将任何功能附加到我的播放列表对象。

我确认播放列表脚本正在加载:我在alert("playlist!");的顶部添加了flowplayer.playlist-3.0.8.js,就在初始注释块之后和功能代码开始之前。当我加载我的网页时,我看到了警报。无论是使用缩小版还是普通版的脚本,我都会得到相同的结果,以及我是否使用flowplayer()$f()来调用流程图功能。我正在使用 flowplayer 3.2.3 playlist 3.0.8

这是一个简单的静态页面,试图在图库中呈现FlowPlayer和两个剪辑:FlowPlayer出现,但点击任一图库链接会替换当前页面,直接在浏览器窗口中播放视频,而不是让我保持在HTML页面上并在FlowPlayer实例中播放视频。

如果我向FlowPlayer调用添加一个配置参数并提供一个默认剪辑,那么该剪辑会播放,但画廊链接再次将我带到原始剪辑,而不是将剪辑推入FlowPlayer。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>test flowplayer</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>
    <script src="/_library/script/flowplayer/flowplayer-3.2.3.min.js" type="text/javascript"></script>
    <script src="/_library/script/flowplayer/flowplayer.playlist-3.0.8.min.js" type="text/javascript"></script>
</head>
<body>
    <div id="player" style="display: block; width: 776px; height: 432px;"></div>
    <div id="gallery">
        <a href="/resources/video/Empowerment_TV30_776.mp4">video 1</a>
        <a href="/resources/video/Commercial_776.mp4">video 2</a>
    </div>
    <script type="text/javascript">
        $(function () {
            $f("player", "/_library/script/flowplayer/flowplayer-3.2.3.swf")
            .playlist("gallery");
        });
    </script>
</body>
</html>

知道我做错了什么吗?任何帮助表示感谢,如果您需要更多详细信息,请与我们联系。

谢谢! - 瓦尔

3 个答案:

答案 0 :(得分:0)

$f("player", "/_library/script/flowplayer/flowplayer-3.2.3.swf").playlist("gallery");

可能?

.playlist()不是$(function () {})

的函数

答案 1 :(得分:0)

$(function () {})

您是如何为load event注册事件处理程序的。因此,在浏览器触发load事件之前,其中的代码不会执行,并且插件可能尚未可用。

另外,您没有密切关注这些教程。有的代码是这样的

$(function() {
    // setup player without "internal" playlists
    $f("player2", "http://releases.flowplayer.org/swf/flowplayer-3.2.3.swf", {
        clip: {baseUrl: 'http://blip.tv/file/get'} 
    // use playlist plugin. again loop is true
    }).playlist("div.petrol", {loop:true});
});

请注意,在.playlist返回时会调用$f(),而不是$(function(){...})

答案 2 :(得分:0)

好的,修好了。

许多示例都在播放列表容器中使用了一个类。在使用类的示例中,播放列表函数被传递给CSS选择器 - 通常类似于playlist("div.gallery")

我更改了我的标记以使用类,将参数更改为playlist()到完全限定的CSS选择器,它可以工作!!!

现在,我不想使用类 - 我有一个播放列表元素,所以我想使用一个ID。我将标记更改回ID:

<div id="gallery">
    <a href="video1">video1</a>
    <a href="video2">video2</a>
</div>

并更改了调用者以使用ID选择器:

playlist("div#gallery");

这也有效!

最后,我想知道是否需要指定具有播放列表ID的元素,而我不这样做 - 我只能给它一个CSS ID选择器:

playlist("#gallery");

我认为我的问题是,使用主要的流程图脚本,您可以在不使用.#限定符的情况下处理占位符元素,例如$f("player");而不是$f("#player");。但播放列表插件更挑剔,你必须使用限定符。

单个角色的所有痛苦!