視頻播放器

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 }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章