使用的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