代码之家  ›  专栏  ›  技术社区  ›  Val

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

  •  1
  • Val  · 技术社区  · 14 年前

    交叉张贴在 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 .

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

    如果我在flowplayer调用中添加一个config参数并提供一个默认剪辑,那么该剪辑将播放,但库链接再次将我带到原始剪辑,而不是将剪辑推入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 回复  |  直到 14 年前
        1
  •  0
  •   Sirber    14 年前

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

    也许吧?

    .playlist() 不是的函数 $(function () {})

        2
  •  0
  •   Justin Johnson    14 年前
    $(function () {})
    

    是如何为 load event . 因此,在 负载 事件由浏览器触发,插件可能还不可用。

    另外,您没有严格遵循教程。密码是这样的

    $(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(){...}) .

        3
  •  0
  •   Val    14 年前

    好的,固定的。

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

    我将标记更改为使用类,将参数更改为 playlist() 到一个完全合格的CSS选择器,它工作!!!!

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

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

    并将调用者更改为对ID使用CSS选择器:

    playlist("div#gallery");
    

    这也行!

    最后,我想知道是否需要指定具有播放列表ID的元素,但我不能——我可以给它一个CSS ID选择器:

    playlist("#gallery");
    

    我认为我的问题是,使用主flowplayer脚本,可以在不使用 . # 限定符,像 $f("player") 而不是 $f("#player"); . 但是播放列表插件更挑剔,您必须使用限定符。

    一个角色的所有痛苦!