2012-12-18 79 views
4

這裏是全新的,對於任何使用HTML5視頻和/或VideoJS播放器的經驗者(如果需要,我也願意使用不同的播放器)都有問題。VideoJS - 無縫循環視頻

我有一個視頻,其中包括介紹部分和我想要循環的部分。我已經這樣做了,以防止在加載第二部分時出現「黑點」。

所以我的問題是這個,我想這第二部分無縫循環,似乎無法完全正確地拉它。在重新開始播放之前似乎有一秒左右的延遲。我讓我的視頻編輯器準確地設置了36秒的循環點,並使用以下代碼在達到結尾後在36秒內播放和播放。

myPlayer.addEvent("ended", function() { 
    myPlayer.currentTime(36); 
    myPlayer.play(); 
}); 

這會將視頻擺回第一幀,然後跳到36秒,然後再播放。我會嘗試爲視頻的第二個尾部設置一個監聽者並執行搜索,但我仍然關注搜索後的瞬間延遲。

任何幫助將不勝感激!

亞歷

更新:我已經成功地消除它通過編輯的Video.js源刪除默認的功能,可以追溯到第一幀位運行時「結束」事件被觸發(其基本上是這樣的:「暫停(); currentTime(0);暫停();」)

該視頻現在將直接轉到我需要它的36秒標記,但問題是它仍然註冊視頻結束並在36秒後重新播放之前停止播放,這會在循環中造成輕微的延遲。我試圖弄清楚如何讓它聽,也許,第二個視頻即將結束,然後觸發seek(currentTime)函數,而不是「結束」事件監聽器。

回答

1

試着把視頻分成兩部分:介紹和循環部分。爲每個元素製作一個<video>元素,並將它們放置在同一位置,並隱藏第二個視頻。在介紹上設置一個"ended"事件來換出顯示並開始第二個視頻。然後,您可以在第二個視頻元素上設置loop屬性。

只要您至少在循環視頻中擁有preload屬性,您就不應該讓兩個視頻無縫地一起播放。

如果這不起作用,請嘗試製作具有相同循環視頻的兩個視頻元素。當一個人在玩時,你可以隱藏另一個,並將其currentTime歸零,所以當沒有人在尋找時,任何尋找延遲都會發生。 (希望瀏覽器能夠足夠聰明地緩存視頻文件,並且只能從網絡上加載一次,但您可能需要試驗一下。)

(遺憾的是,這些都不適用於ipad,因爲移動Safari不支持在一個網頁上的多個媒體元素。)

+0

感謝您的迴應。我重新調整了它,以便它沒有使用「結束」事件,而是傾聽了繞過暫停()seek()play()函數的視頻的最後一秒(> = 81),並且找到了適當的時間因此。我準備走你的路線,但iPad需要一塊。然而,我會批准你的答案,因爲這是在其他情況下處理它的合法方式。再次感謝。 – PSDoff

+0

感謝您的批准並分享您的解決方案。這是一個很好的。 – brianchirls

+0

@PSDoff你是怎麼聽最後一秒的? – catalinux