0001 //创建一个 NetConnection 对象    
0002 var netConnection:NetConnection=new NetConnection  ;
0003 /*如果连接到没有使用服务器的FLV 文件,则通过向 connect() 方法传递值 
0004 null,来播放流式 FLV 文件*/
0005 netConnection.connect(null);
0006 /*创建一个 NetStream 对象(该对象将 NetConnection 对象作为参数)并 
0007 指定要加载的 FLV 文件*/
0008 var netStream:NetStream=new NetStream(netConnection);
0009 netStream.play("test.flv");
0010 /*使用 Video 类的 attachNetStream() 方法附加以前创建的 NetStream 
0011 对象(视频实例名为vid)*/
0012 vid.attachNetStream(netStream);
0013 //音量初始值    
0014 var yl:Number=0.5;
0015 var nsyl:SoundTransform=new SoundTransform  ;
0016 //nsyl.volume=yl    
0017 
0018 //播放进度与加载进度影片缩放为0    
0019 bfjd_mc.scaleX=jzjd_mc.scaleX=0;
0020 //申明变量播放与下载百分比以及总时间(秒)的初始值为0    
0021 var bf_percent:int=0;
0022 var xz_percent:int=0;
0023 var _duration:Number=0;
0024 
0025 //指定在其上调用回调方法的对象    
0026 var _client:Object=new Object  ;
0027 _client.onMetaData=onMetaData;
0028 netStream.client=_client;
0029 //按钮可见性与添加侦听事件    
0030 play_btn.visible=false;
0031 pause_btn.visible=true;
0032 pause_btn.addEventListener(MouseEvent.CLICK,zt);
0033 play_btn.addEventListener(MouseEvent.CLICK,bf);
0034 //忽略错误    
0035 netStream.addEventListener(AsyncErrorEvent.ASYNC_ERROR,asyncErrorHandler);
0036 
0037 function asyncErrorHandler(event:AsyncErrorEvent):void {
0038 }
0039 
0040 //暂停    
0041 function zt(event:MouseEvent):void {
0042     play_btn.visible=true;
0043     pause_btn.visible=false;
0044     //视频暂停    
0045     netStream.pause();
0046 }
0047 
0048 //播放    
0049 function bf(event:MouseEvent):void {
0050     play_btn.visible=false;
0051     pause_btn.visible=true;
0052     //恢复回放暂停的视频流    
0053     netStream.resume();
0054     addEventListener(Event.ENTER_FRAME,gx);
0055 }
0056 
0057 //接收在正播放的 FLV 文件中嵌入的描述性信息时调度    
0058 function onMetaData(data:Object):void {
0059     _duration=data.duration;
0060 }
0061 //申明变量播放信号    
0062 var bfxh:String;
0063 //侦听视频流的开始和末尾    
0064 netStream.addEventListener(NetStatusEvent.NET_STATUS,statusHandler);
0065 
0066 function statusHandler(event:NetStatusEvent):void {
0067     bfxh=event.info.code;
0068 }
0069 //不断更新进度与文本的显示    
0070 addEventListener(Event.ENTER_FRAME,gx);
0071 
0072 function gx(event:Event):void {
0073     if (netStream.bytesLoaded > 0) {
0074         //加载进度    
0075         xz_percent=netStream.bytesLoaded / netStream.bytesTotal * 100;
0076         jzjd_mc.scaleX=xz_percent / 100;
0077     }
0078 
0079     if (_duration > 0 && netStream.time > 0) {
0080         //播放进度    
0081         bf_percent=netStream.time / _duration * 100;
0082         bfjd_mc.scaleX=bf_percent / 100;
0083     }
0084     if (bfxh == "NetStream.Play.Stop") {
0085         //播放完毕时的设置    
0086         bf_percent=0;
0087         bfjd_mc.scaleX=0;
0088         netStream.close();
0089         //netStream.pause(); 
0090         //netStream.seek(0); //将播放头置于视频开始处    
0091         play_btn.visible=true;
0092         pause_btn.visible=false;
0093     }
0094     //文本显示内容    
0095     bftxt.text=Math.round(netStream.time / 60) + ":" + Math.round(netStream.time % 60);
0096     zcdtxt.text=Math.round(_duration / 60) + ":" + Math.round(_duration % 60);
0097     //音量控制    
0098     yl=ylhk_mc.x - 345 / 50;
0099     ylt_mc.scaleX=yl;
0100     nsyl.volume=yl;
0101     netStream.soundTransform=nsyl;
0102 }
0103 //音量滑块拖动控制    
0104 var fw:Rectangle=new Rectangle(345,328,50,0);//拖动范围    
0105 ylhk_mc.addEventListener(MouseEvent.MOUSE_DOWN,ylhkax);
0106 ylhk_mc.addEventListener(MouseEvent.MOUSE_UP,ylhksk);
0107 stage.addEventListener(MouseEvent.MOUSE_UP,ylhksk);
0108 
0109 function ylhkax(event:MouseEvent):void {
0110     ylhk_mc.startDrag(false,fw);
0111 }
0112 
0113 function ylhksk(event:MouseEvent):void {
0114     ylhk_mc.stopDrag();
0115 }
视频播放器_第1张图片