2010-08-25 23 views
1

交叉張貼在Flowplayer forums,但沒有迴應那裏,所以我希望這裏的人可以幫助。爲什麼我的播放列表不工作?

我沒有成功使用播放列表插件。我仔細地跟着http://flowplayer.org/plugins/javascript/playlist.html的例子,我得到最初的剪輯工作,但播放列表插件似乎沒有註冊。視頻加載和播放,所以FlowPlayer加載正常,但播放列表不會將任何功能附加到我的播放列表對象。

我確認播放列表腳本正在加載:我在flowplayer.playlist-3.0.8.js的頂部添加了alert("playlist!");,位於最初的註釋塊之後,功能代碼開始之前。當我加載我的網頁時,我看到了警報。無論是使用縮小版本還是普通版本的腳本,以及是否使用flowplayer()$f()調用流水遊戲功能,我都可以得到相同的結果。我正在使用flowplayer 3.2.3playlist 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> 

任何想法我做錯了什麼?任何幫助表示感謝,讓我知道如果你需要更多的細節。

謝謝! - 瓦爾

回答

0

好的,固定的。

許多示例在播放列表容器上使用了一個類。在使用類的示例中,播放列表功能通過一個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"); 

我想我的問題是通過主要流水遊戲腳本,您可以在不使用.#限定符的情況下尋址佔位符元素,如$f("player");而不是$f("#player");。但播放列表插件更挑剔,你必須使用限定符。

單個角色的所有痛苦!

0

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

可能?

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

+0

是的,賈斯汀也指出了這一點。修正了它,JavaScript錯誤消失了,但仍然沒有播放列表功能。 – Val 2010-08-25 18:15:20

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()的回報,而不是。

+0

我以爲是一樣的,試過了;只用$(function(){$ f(「player」,「/_library/script/flowplayer/flowplayer-3.2.3.swf").playlist("gallery」);}); - 現在,我沒有得到JavaScript錯誤,抱怨'播放列表不是播放列表不是播放列表功能',但我也沒有得到播放列表功能 - 單擊播放列表鏈接直接將MP4加載到窗口而不是播放器中。至於插件是否可用,我認爲腳本調用是同步的,在加載HEAD中引用的腳本之前我們不會訪問我的代碼。 – Val 2010-08-25 17:54:18

+0

我解決了這個問題,移動.playlist()調用來鏈接$ f()調用,並刪除對JavaScript錯誤的引用。仍然沒有獲得任何播放列表功能。 – Val 2010-08-25 20:28:59

相關問題