2013-04-26 328 views
3

使用VideoJS停止視頻的最佳方式是什麼?我一直在使用pause()方法來停止視頻,然後隱藏視頻標籤,但是我遇到了一個用例,我會試圖在視頻仍在加載/緩衝時停止它。在視頻仍在緩衝時調用pause()方法的問題是視頻尚未播放,所以pause()方法什麼也不做。使用VideoJS停止視頻?

所以會發生的是,視頻繼續緩衝,並在視頻緩衝後,視頻開始播放。 (因爲我在停止視頻時隱藏了視頻,我看不到視頻在播放,但我仍然可以聽到它在播放。)

要解決此問題,我可以聽取播放器何時發送「timeupdate」事件,然後在視頻暫停時立即暫停視頻。但是,這看起來像是一種黑客攻擊,並且在其他用例中會出現錯誤。

我真的希望VideoJS有一個專門的stop()函數。也許在下一個版本。 @see https://github.com/zencoder/video-js/issues/296

任何人都可以告訴我如何停止視頻,如果它仍然緩衝?

UPDATE: 於是,我就實現,我原本以爲的解決方案:調用「停止」功能,在調度「timeupdate」事件,玩家應該停止。但是,我發現一些奇怪的東西。玩家在處於停止狀態時沒有發送任何事件。

然後我創建了一個timeOut函數來調用每一秒。在timeOut函數中,我檢查了videoJS播放器的當前時間(即_myPlayer.currentTime())並將其寫入控制檯。當前時間總是保持不變:0秒。但是,我可以聽到視頻前進/播放。視頻播放器似乎沒有我聽到的內容。

UPDATE2: 以防萬一的信息是有價值的,我更新了原來的職位,包括我隱藏視頻標籤的事實,當我停止視頻:即$(「#playerID」)隱藏()

+0

使用預緊=「關」視頻 – 2013-04-26 14:07:44

+0

什麼是它加載前停止正在播放的視頻用例?你不能只是預加載/自動播放爲假? – heff 2013-04-26 19:36:00

+0

@heff用例是這是在一個視頻應用程序。用戶選擇一個視頻縮略圖並加載視頻並開始播放。用戶可以隨時停止視頻並返回主界面。 – jaxim 2013-04-26 19:48:40

回答

1

看起來這個VideoJS版本沒有解決這個問題的方法,可能在將來的版本中。

現在,您可以嘗試加載單幀「空」視頻來代替當前的緩衝視頻。並將預載設置爲「關閉」。

或者按照您的建議使用「timeupdate」來調用pause()。

希望它可以幫助..