我今天的问题涉及 Flash AS3 视频缓冲。(流式或渐进式)我希望能够检测到视频何时被缓冲,因此我可以显示某种动画让用户知道再等一会儿。
目前我的视频将启动,在第 1 帧上保持 3-4 秒然后播放。有点让人觉得视频已暂停或损坏:(
更新
感谢iandisme,我相信我现在正朝着正确的方向前进。来自 livedocs 的 NetStatusEvent。在我看来,要工作的关键状态是,"NetStream.Buffer.Empty"
所以我在其中添加了一些代码,看看这是否会触发我的动画或跟踪语句。还没有运气,但是当缓冲区已满时,它会触发我的代码:/也许我的视频总是介于两者之间Buffer.Empty
,Buffer.Full
这就是为什么当我测试用例时它不会触发任何代码Buffer.Empty
?
当前代码
public function netStatusHandler(event:NetStatusEvent):void
{
// handles net status events
switch (event.info.code)
{
case "NetStream.Buffer.Empty":
trace("☼☼☼ Buffering!"); //<- never traces
addChild(bufferLoop); //<- doesn't execute
break;
case "NetStream.Buffer.Full":
trace("☼☼☼ FULL!"); //<- trace works here
removeChild(bufferLoop); //<- so does any other code
break;
case "NetStream.Buffer.Flush":
trace("☼☼☼ FLUSH!");
//Not sure if this is important
break
}
}