//创建一个 NetConnection 对象 var netConnection:NetConnection = new NetConnection(); /*如果连接到没有使用服务器的FLV 文件,则通过向 connect() 方法传递值 null,来播放流式 FLV 文件*/ netConnection.connect(null); /*创建一个 NetStream 对象(该对象将 NetConnection 对象作为参数)并 指定要加载的 FLV 文件*/ var netStream:NetStream = new NetStream(netConnection); netStream.play("test.flv"); /*使用 Video 类的 attachNetStream() 方法附加以前创建的 NetStream 对象(视频实例名为vid)*/ vid.attachNetStream(netStream); //音量初始值 var yl:Number = 0.5; var nsyl:SoundTransform = new SoundTransform(); //nsyl.volume=yl //播放进度与加载进度影片缩放为0 bfjd_mc.scaleX = jzjd_mc.scaleX = 0; //申明变量播放与下载百分比以及总时间(秒)的初始值为0 var bf_percent:int = 0; var xz_percent:int = 0; var _duration:Number = 0; //指定在其上调用回调方法的对象 var _client:Object = new Object(); _client.onMetaData = onMetaData; netStream.client = _client; //按钮可见性与添加侦听事件 play_btn.visible = false; pause_btn.visible = true; pause_btn.addEventListener(MouseEvent.CLICK, zt); play_btn.addEventListener(MouseEvent.CLICK, bf); //忽略错误 netStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); function asyncErrorHandler(event:AsyncErrorEvent):void { } //暂停 function zt(event:MouseEvent):void { play_btn.visible = true; pause_btn.visible = false; //视频暂停 netStream.pause(); } //播放 function bf(event:MouseEvent):void { play_btn.visible = false; pause_btn.visible = true; //恢复回放暂停的视频流 netStream.resume(); addEventListener(Event.ENTER_FRAME, gx); } //接收在正播放的 FLV 文件中嵌入的描述性信息时调度 function onMetaData(data:Object):void { _duration = data.duration; } //申明变量播放信号 var bfxh:String; //侦听视频流的开始和末尾 netStream.addEventListener(NetStatusEvent.NET_STATUS, statusHandler); function statusHandler(event:NetStatusEvent):void { bfxh = event.info.code; } //不断更新进度与文本的显示 addEventListener(Event.ENTER_FRAME, gx); function gx(event:Event):void { if (netStream.bytesLoaded > 0){ //加载进度 xz_percent = netStream.bytesLoaded / netStream.bytesTotal * 100; jzjd_mc.scaleX = xz_percent / 100; } if (_duration > 0 && netStream.time > 0){ //播放进度 bf_percent = netStream.time / _duration * 100; bfjd_mc.scaleX = bf_percent / 100; } if (bfxh == "NetStream.Play.Stop"){ //播放完毕时的设置 bf_percent = 0; bfjd_mc.scaleX = 0; netStream.close(); //netStream.pause(); //netStream.seek(0); //将播放头置于视频开始处 play_btn.visible = true; pause_btn.visible = false; } //文本显示内容 bftxt.text = Math.round(netStream.time / 60) + ":" + Math.round(netStream.time % 60); zcdtxt.text = Math.round(_duration / 60) + ":" + Math.round(_duration % 60); //音量控制 yl = (ylhk_mc.x - 345) / 50; ylt_mc.scaleX = yl; nsyl.volume = yl; netStream.soundTransform = nsyl; } //音量滑块拖动控制 var fw:Rectangle = new Rectangle(345, 328, 50, 0); //拖动范围 ylhk_mc.addEventListener(MouseEvent.MOUSE_DOWN, ylhkax); ylhk_mc.addEventListener(MouseEvent.MOUSE_UP, ylhksk); stage.addEventListener(MouseEvent.MOUSE_UP, ylhksk); function ylhkax(event:MouseEvent):void { ylhk_mc.startDrag(false, fw); } function ylhksk(event:MouseEvent):void { ylhk_mc.stopDrag(); }