2014-01-06 39 views
3

首先:這是我的第一個問題在這裏,我是不是熟練的Flash開發人員。滯後尋求()與flvplayback組件

我有一部帶有FLVPLAYBACK組件的電影(Player)。我設置了一個外部源(Player.source = "http://example.com/movie.mp4)並完全緩衝它(使用Player.addEventListener(VideoProgressEvent.PROGRESS, bufferVideo))。電影播放良好。問題是:我需要能夠尋求指定的時間,甚至幾秒鐘的時間。我有一個循環檢查某些條件並啓動Seek方法(Player.seek(TIME))。它有效,但在搜索之間有明顯的滯後。 .Seek()立即可以嗎?我有這樣的工作在HTML5中,但我無法在所有瀏覽器上正確緩衝電影。

我不想分享完整的代碼,因爲它在這個問題的各個部分之間有很多不相關的部分。

更新我試過FLV(不知何故似乎追求的是更慢)和F4V(似乎更快,但仍然存在明顯的滯後)/

+2

我相信你遇到減壓時間。您的mp4可能使用H.264(或類似的)編解碼器進行壓縮,這會導致優秀的文件大小,但需要花費CPU解壓縮。每個幀需要一個參考幀(通常基於前一幀),ergo向前播放是邏輯的,而反向播放需要恆定的回看,這導致了口吃。 – Atriace

+0

Layman-English翻譯爲Atraice的評論:您的計算機正在忙於解壓文件,以致它沒有足夠的能力立即響應查找請求。 (當然,這嚴重過分簡化了他的解釋。) – CodeMouse92

+0

感謝您的解釋。將使用閃存編碼電影或任何其他格式加快速度? – Michal

回答

5
  1. 確保你有一個很好的連接
  2. 視頻應該流進行壓縮(使一個巨大的差異)
  3. 發揮你的bufferTime參數來獲取理想的地理位置,
  4. 箱與代碼球員和不使用的UI組件。你將有更多的靈活性: http://blog.martinlegris.com/2008/06/03/tutorial-playing-flv-video-in-plain-as3-part-1/

警告,再緩衝將允許播放更順暢,更短將尋求更快,但代價是會打的緩衝更多的時候......不理想

+0

我從本地主機下載視頻,甚至完全緩衝它。它什麼也沒做。 – Michal

+0

@Michal,請詳細說明「它什麼都不做」 – mihai

+0

從網絡服務器和本地服務器下載(加載時間之外)沒有區別。尋找之間仍然存在滯後。 – Michal