当我在 Flash 中播放视频时,首先,它开始缓冲,然后,当缓冲区满时,它开始播放。在填充缓冲区时,关联的 Video 对象会自动显示第一个视频帧。
当这个框架可用时,有没有办法接收通知?因为我想隐藏视频组件,直到有图像要显示。
目前我处理缓冲区完整的 NetStreamEvent,因此它在开始播放时显示。但是现在我需要一个更大的缓冲区(10s),所以等待 10s 向用户显示一些东西是不好的。
当我在 Flash 中播放视频时,首先,它开始缓冲,然后,当缓冲区满时,它开始播放。在填充缓冲区时,关联的 Video 对象会自动显示第一个视频帧。
当这个框架可用时,有没有办法接收通知?因为我想隐藏视频组件,直到有图像要显示。
目前我处理缓冲区完整的 NetStreamEvent,因此它在开始播放时显示。但是现在我需要一个更大的缓冲区(10s),所以等待 10s 向用户显示一些东西是不好的。
你应该听“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 事件。
}
}
}