·您当前的位置:首页 > 技术教程 > 播放器教程 >

[AS3]as3写的一个视频播放器源代码实例

时间:2014-04-10 16:06mzbdadou
[AS3]as3写的一个视频播放器源代码实例,as3视频播放器,as3播放器源代码

[AS3]as3写的一个视频播放器源代码实例

  1. package 
  2. { 
  3.     import com.bit101.components.HSlider; 
  4.     import com.bit101.components.InputText; 
  5.     import com.bit101.components.Label; 
  6.     import com.bit101.components.PushButton; 
  7.     import flash.display.Sprite; 
  8.     import flash.events.Event; 
  9.     import flash.events.MouseEvent; 
  10.     import flash.events.NetStatusEvent; 
  11.     import flash.media.SoundTransform; 
  12.     import flash.media.Video; 
  13.     import flash.net.NetConnection; 
  14.     import flash.net.NetStream; 
  15.   
  16.     [swf(width="500", height="500")] 
  17.     public class videoDisplay extends Sprite 
  18.     { 
  19.         private var _netStream:NetStream; 
  20.         private var _sp:Sprite; 
  21.         private var _bool:Boolean;//判断滑块是否按下,在每帧事件上侦听 
  22.         private var _hRangeSlider:HSlider;//视频加载位置 
  23.         private var _hRangeSlider2:HSlider;//视频播放位置 
  24.         private var _lable:Label;//显示当前播放时间/总时间 
  25.         private var _play:PushButton;//播放和暂停按钮 
  26.         private var _source:HSlider;//调整时声音滑块 
  27.         private var _sourceNum:Number = 0.6;//初始声音 
  28.         private var _soundOff:PushButton;//静音和开放按钮 
  29.         private var _isPlay:Boolean = false;//是否在播放 
  30.         private var _duration:Number;//返回总时间,秒为单位 
  31.           
  32.         //静音,0为静音 
  33.         private var sounceNum:int =1; 
  34.         private var _soundTransform:SoundTransform; 
  35.           
  36.         public function videoDisplay() 
  37.         { 
  38.             _bool = false;  
  39.               
  40.             //绘制控件 
  41.             Draw(); 
  42.               
  43.             //视频连接和播放主文件start 
  44.             var _netConnection:NetConnection = new NetConnection(); 
  45.             _netConnection.connect(null); 
  46.             var _clientOb:Object = new Object(); 
  47.             _clientOb.onMetaData = onMD; 
  48.             _netStream = new NetStream(_netConnection); 
  49.             _netStream.bufferTime = 15; 
  50.             _netStream.client = _clientOb; 
  51.             var _video:Video = new Video(); 
  52.             _video.attachNetStream(_netStream); 
  53.             _video.y = 100; 
  54.             addChild(_video); 
  55.             _netStream.play("videos/a.flv"); 
  56.             //end 
  57.               
  58.             this.addEventListener(Event.ENTER_FRAME, onEnterFrame); 
  59.             //视频状态报告 
  60.             _netStream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus); 
  61.         } 
  62.   
  63.         private function Draw():void 
  64.         { 
  65.             //插件使用MinimalComps第三方插件 
  66.             _sp = new Sprite(); 
  67.             this.addChild(_sp); 
  68.             _hRangeSlider = new HSlider(_sp); 
  69.             _lable = new Label(_sp,_hRangeSlider.x+_hRangeSlider.width+10); 
  70.             _hRangeSlider2 = new HSlider(_sp, 0, _hRangeSlider.height+2); 
  71.             _hRangeSlider2.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); 
  72.             _lable.text = "00:00/00:00"; 
  73.             _play= new PushButton(_sp, 0, _hRangeSlider2.y + _hRangeSlider2.height+2,"pause",onPlay); 
  74.             _source = new HSlider(_sp,0,_play.y +_play.height+2) 
  75.             _source.value = (0.6/1)*_source.width; 
  76.             _source.addEventListener(MouseEvent.MOUSE_DOWN, onSoundMouseDown); 
  77.             _soundOff = new PushButton(_sp,0, _source.y+_source.height+2,"SounceOn",handSoundOff);  
  78.         } 
  79.           
  80.         private function onNetStatus(evt:NetStatusEvent):void 
  81.         { 
  82.             switch(evt.info.code) 
  83.             { 
  84.             case "NetStream.Play.Start"://CuPlayer.com提示开始播放 
  85.                 _isPlay = true; 
  86.                 break; 
  87.             case "NetStream.Play.Stop"://Cuplayer.com全部播放完 
  88.                 _isPlay =false; 
  89.                 break; 
  90.             case "NetStream.Buffer.Empty"://Cuplayer.com缓冲 
  91.                 break; 
  92.             } 
  93.         } 
  94.           
  95.         //点击播放暂停按钮 
  96.         private function onPlay(evt:Event):void 
  97.         { 
  98.               
  99.             if(_play.label  == "play") 
  100.             { 
  101.                 if(_isPlay)//是否在播放中,(包括暂停) 
  102.                 { 
  103.                     //_netStream.resume(); 
  104.                     _netStream.togglePause(); 
  105.                 } 
  106.                 else 
  107.                 { 
  108.                     _netStream.play("videos/a.flv"); 
  109.                     //_netStream.pause(); 
  110.                 } 
  111.             } 
  112.             if(_play.label  == "pause") 
  113.             { 
  114.                 _netStream.togglePause(); 
  115.             } 
  116.             _play_play.label = _play.label == "play"?"pause":"play"; 
  117.         } 
  118.           
  119.         //点击视频播放位置滑块 
  120.         private function onMouseDown(evt:Event):void 
  121.         { 
  122.             _bool = true; 
  123.             _netStream.togglePause();//暂停 
  124.             _hRangeSlider.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); 
  125.         } 
  126.         //点击视频播放位置滑块 
  127.         private function onMouseUp(evt:Event):void 
  128.         { 
  129.             _bool = false; 
  130.             _netStream.togglePause();//CuPlayer.com提示:播放 
  131.             _hRangeSlider.stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);        
  132.         } 
  133.           
  134.           
  135.           
  136.         private function onMD(data:Object):void 
  137.         { 
  138.             _duration = data.duration; 
  139.         } 
  140.         private function onEnterFrame(evt:Event):void 
  141.         { 
  142.             _lable.text = Math.floor(_netStream.time/60) +":"+ Math.round(_netStream.time%60)+"/" 
  143.                 +Math.floor(_duration/60) +":"+ Math.round(_duration%60); 
  144.               
  145.             var bigLoad:int = _netStream.bytesTotal;//视频文件大小 
  146.             var theLoad:int = _netStream.bytesLoaded;//当前加载大小 
  147.             _hRangeSlider.value = (theLoad/bigLoad)*_hRangeSlider.width; 
  148.             if(_bool) 
  149.             { 
  150.                 //播放视频的指定位置 
  151.                 _netStream.seek((_hRangeSlider2.value/_hRangeSlider2.width)*_duration); 
  152.             } 
  153.             else 
  154.             { 
  155.                 _hRangeSlider2.value = (_netStream.time/_duration)*_hRangeSlider2.width; 
  156.             } 
  157.         } 
  158.   
  159.         //根据传入0-1之间的数调节音量 
  160.         private function setSource(num:Number):void 
  161.         { 
  162.             _soundTransform = _netStream.soundTransform; 
  163.             _soundTransform.volume = num; 
  164.             _netStream.soundTransform = _soundTransform; 
  165.         } 
  166.           
  167.         //静音和开发 
  168.         private function handSoundOff(EVT:Event):void 
  169.         { 
  170.             _soundOff_soundOff.label =_soundOff.label == "SounceOff"?"SounceOn":"SounceOff"; 
  171.             if(_soundOff.label == "SounceOff") 
  172.             { 
  173.                 sounceNum = 0; 
  174.                 setSource(0); 
  175.             } 
  176.             else 
  177.             { 
  178.                 sounceNum = 1; 
  179.                 setSource(Math.round((_source.value/_source.width)*10)/10); 
  180.             } 
  181.         } 
  182.           
  183.         //CuPlayer.com提示:拖动音量滑块到指定位置 
  184.         private function onSoundMouseDown(evt:Event):void 
  185.         { 
  186.             _source.stage.addEventListener(MouseEvent.MOUSE_UP, onSoundMouseUp); 
  187.         } 
  188.         private function onSoundMouseUp(evt:Event):void 
  189.         { 
  190.             _source.stage.removeEventListener(MouseEvent.MOUSE_UP, onSoundMouseUp); 
  191.             if(sounceNum)//CuPlayer.com提示:非静音 
  192.             { 
  193.                 setSource(Math.round((_source.value/_source.width)*10)/10);     
  194.             } 
  195.         } 
  196.     } 
  197. } 

[AS3]as3写的一个视频播放器源代码实例

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器