2

当我在 Flash 中播放视频时,首先,它开始缓冲,然后,当缓冲区满时,它开始播放。在填充缓冲区时,关联的 Video 对象会自动显示第一个视频帧。

当这个框架可用时,有没有办法接收通知?因为我想隐藏视频组件,直到有图像要显示。

目前我处理缓冲区完整的 NetStreamEvent,因此它在开始播放时显示。但是现在我需要一个更大的缓冲区(10s),所以等待 10s 向用户显示一些东西是不好的。

4

1 回答 1

0

你应该听“NetStream.Play.Start”;

包裹 {
    导入 flash.display.Sprite;
    导入 flash.events.*;
    导入 flash.media.Video;
    导入 flash.net.NetConnection;
    导入 flash.net.NetStream;

    公共类 VideoExample 扩展 Sprite {
        私人 var videoURL:String = "someVideo.flv";
        私有变量连接:NetConnection;
        私有变量流:NetStream;
        私人 var 视频:视频;

        公共函数 VideoExample() {
            连接 = 新的 NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            连接.连接(空);
        }

        私有函数 netStatusHandler(event:NetStatusEvent):void {

          trace("event.info.code "+event.info.code);

           开关(event.info.code){
                案例“NetConnection.Connect.Success”:
                    连接流();
                    休息;

                案例“NetStream.Play.Start”:
                添加孩子(视频);
                休息;

                案例“NetStream.Play.StreamNotFound”:
                    trace("找不到视频:" + videoURL);
                    休息;
            }
        }

        私有函数 connectStream():void {
            var stream:NetStream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
            视频 = 新视频();
            video.attachNetStream(流);
            流。播放(视频网址);

        }

        私有函数securityErrorHandler(事件:SecurityErrorEvent):无效{
            trace("securityErrorHandler:" + event);
        }

        私有函数 asyncErrorHandler(event:AsyncErrorEvent):void {
            // 忽略 AsyncErrorEvent 事件。
        }
    }
 }
于 2010-09-09T00:27:30.110 回答