2010-10-01 26 views
4

我一直在爲網絡創建一個自定義視頻播放器。在我運行它的某些機器上,它將開始加載.flv文件,然後在30秒到1分鐘內無法取得進展,然後顯示視頻已完全加載。我正在檢查在Event.ENTER_FRAME中使用bytesLoaded/bytesTotal加載了多少。當單獨跟蹤看起來發生什麼時,它顯示完全加載bytesTotal值更改爲當前bytesLoaded值,導致我的視​​頻播放器註冊我的負載百分比爲1.我已經描繪出NetStatus event.code值,並且沒有更新以顯示出現任何類型的錯誤。我得到的是一個NetStream.Play.StartNetStream.Buffer.Full然後它將等待並重置字節總值。加載NetStream視頻的問題

所以我問的是如果有辦法解決這個問題?

+0

當你說「沒有進步」時,你的意思是你進度條還是實際的加載?您是否使用Firebug/Activity Monitor/Charles Proxy等來監控加載?另外,你的緩衝區設置了多少?你是否手動暫停/開始播放,還是在緩衝區滿時自動播放? – 2011-01-25 02:09:56

+0

這似乎是一個與超出緩衝量的查找功能有關的問題。這隻發生在一些機器上,並且隨着顯卡更新和FlashPlayer更新,問題不再發生。結合嚴格控制尋找命令的位置,以及動態更改的緩衝區以適應不同的連接速度,在我測試過的所有機器上,問題消失了。我很感激你回到我身邊。這是一個奇怪的問題,我無法在更新後繼續發生。 – Snikk 2011-01-27 00:36:24

回答

1

似乎沒有成爲一個明確的答案這個問題。我從那以後再次嘗試解決這個問題,並且我學到了兩個教訓。

1)您可以通過不允許它試圖尋找過去的加載點使用bytesLoadedbytesTotalbufferTime性質代碼周圍NetStream類中的大部分缺點。這可以讓你確保你永遠不會允許嘗試搜索到可能導致問題的時間。

2)在嘗試發送另一個之前,始終允許先前的搜尋嘗試完成並正確處理它。

0

您是否正在播放其moov原子(例如元數據)位於文件末尾的mp4?如果是這樣,Flash將無法播放文件,直到整個文件加載並能夠讀取元數據。

這個工具應該可以解決您的視頻文件: http://renaun.com/blog/code/qtindexswapper/

+0

我熟悉moov規範。視頻的初始播放是由收到的元數據觸發的,所以它不能這樣做。我在這個實例中播放的視頻是使用On2 VP6編解碼器的FLV,該編解碼器在文件尾部有元數據。問題是在回放過程中加載視頻時尋找問題。如果它試圖尋找過去的加載點。 – Snikk 2011-04-06 19:00:58