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