使用的NetStream以流從HTTP內容後NetStream的口吃,我注意到,尤指某些出口H264的,如果玩家遇到一個空的緩衝區,將停止和緩衝所請求的長度(如預期)。的ActionScript:緩衝
但是,一旦緩衝區已滿,播放不會恢復,而是向前跳轉,因此 - 在短時間內立即播放緩衝持續時間,從而再次觸發空緩衝區。然後這將繼續並結束。
推測當netstream暫停緩衝時,播放頭位置會繼續,並且播放器正試圖在簡歷上捕捉到該位置 - 但是,如果需要5秒鐘才能構建2秒緩衝區,則最終會出現無用再次緩衝..
(這是一個假設)
我試圖通過監聽空緩衝區netStatus事件,暫停流解決這一問題,並在同一時間建立一個循環檢查當前的緩衝區長度與請求的緩衝區長度..並且一旦緩衝區長度大於或等於請求的緩衝區就重新開始..然而,當沒有足夠的時間時,這會導致問題E視頻剩下的。例如,10秒的緩衝只有5秒時,循環只是坐在那裏等待10秒的時候,那裏有隻5左側緩衝區長度...
你會認爲,你可以簡單地檢查這是更小的,或離開時所要求的緩衝區長度。但是時代閃光燈給出不準確..
如果添加了淨流當前時間指數,加上緩衝時間,總不是整個電影的持續時間(最後)..它是接近但不相同。
這使我回到原來的問題,如果有另一種方法來解決這個問題,顯然閃存知道什麼時候緩衝區準備好了,所以如何讓它在緩衝區時暫停,並且一旦緩衝區準備好就恢復?目前它不會......暫停,然後一旦緩衝區滿了,它會以大約0.1秒的速度播放整個緩衝內容。
在此先感謝, 斯蒂芬。
嗨大衛,不,它不會發生在每個視頻 - 所以大概是它的編碼問題..這是一場噩夢。它被編碼爲來自camtasia的h264,每秒都有關鍵幀。我想我會嘗試一些不同的導出來嘗試解決問題 - 如果我找到它,我會回發。謝謝 – meandmycode 2009-07-04 14:01:35