[AS3]AS3网页视频播放器源代码
[AS3]AS3网页视频播放器源代码
[AS3]AS3网页视频播放器源代码
- package
- {
- import com.bit101.components.HSlider;
- import com.bit101.components.InputText;
- import com.bit101.components.Label;
- import com.bit101.components.PushButton;
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.MouseEvent;
- import flash.events.NetStatusEvent;
- import flash.media.SoundTransform;
- import flash.media.Video;
- import flash.net.NetConnection;
- import flash.net.NetStream;
- [swf(width="500", height="500")]
- public class videoDisplay extends Sprite
- {
- private var _netStream:NetStream;
- private var _sp:Sprite;
- private var _bool:Boolean;//判断滑块是否按下,在每帧事件上侦听
- private var _hRangeSlider:HSlider;//视频加载位置
- private var _hRangeSlider2:HSlider;//视频播放位置
- private var _lable:Label;//显示当前播放时间/总时间
- private var _play:PushButton;//播放和暂停按钮
- private var _source:HSlider;//调整时声音滑块
- private var _sourceNum:Number = 0.6;//初始声音
- private var _soundOff:PushButton;//静音和开放按钮
- private var _isPlay:Boolean = false;//是否在播放
- private var _duration:Number;//返回总时间,秒为单位
- //静音,0为静音
- private var sounceNum:int =1;
- private var _soundTransform:SoundTransform;
- public function videoDisplay()
- {
- _bool = false;
- //绘制控件
- Draw();
- //视频连接和播放主文件start
- var _netConnection:NetConnection = new NetConnection();
- _netConnection.connect(null);
- var _clientOb:Object = new Object();
- _clientOb.onMetaData = onMD;
- _netStream = new NetStream(_netConnection);
- _netStream.bufferTime = 15;
- _netStream.client = _clientOb;
- var _video:Video = new Video();
- _video.attachNetStream(_netStream);
- _video.y = 100;
- addChild(_video);
- _netStream.play("videos/a.flv");
- //end
- this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
- //视频状态报告
- _netStream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
- }
- private function Draw():void
- {
- //插件使用MinimalComps第三方插件
- _sp = new Sprite();
- this.addChild(_sp);
- _hRangeSlider = new HSlider(_sp);
- _lable = new Label(_sp,_hRangeSlider.x+_hRangeSlider.width+10);
- _hRangeSlider2 = new HSlider(_sp, 0, _hRangeSlider.height+2);
- _hRangeSlider2.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
- _lable.text = "00:00/00:00";
- _play= new PushButton(_sp, 0, _hRangeSlider2.y + _hRangeSlider2.height+2,"pause",onPlay);
- _source = new HSlider(_sp,0,_play.y +_play.height+2)
- _source.value = (0.6/1)*_source.width;
- _source.addEventListener(MouseEvent.MOUSE_DOWN, onSoundMouseDown);
- _soundOff = new PushButton(_sp,0, _source.y+_source.height+2,"SounceOn",handSoundOff);
- }
- private function onNetStatus(evt:NetStatusEvent):void
- {
- switch(evt.info.code)
- {
- case "NetStream.Play.Start"://CuPlayer.com提示开始播放
- _isPlay = true;
- break;
- case "NetStream.Play.Stop"://CuPlayer.com提示全部播放完
- _isPlay =false;
- break;
- case "NetStream.Buffer.Empty"://缓冲
- break;
- }
- }
- //点击播放暂停按钮
- private function onPlay(evt:Event):void
- {
- if(_play.label == "play")
- {
- if(_isPlay)//是否在播放中,(包括暂停)
- {
- //_netStream.resume();
- _netStream.togglePause();
- }
- else
- {
- _netStream.play("videos/a.flv");
- //_netStream.pause();
- }
- }
- if(_play.label == "pause")
- {
- _netStream.togglePause();
- }
- _play_play.label = _play.label == "play"?"pause":"play";
- }
- //点击视频播放位置滑块
- private function onMouseDown(evt:Event):void
- {
- _bool = true;
- _netStream.togglePause();//Cuplayer.com暂停
- _hRangeSlider.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
- }
- //点击视频播放位置滑块
- private function onMouseUp(evt:Event):void
- {
- _bool = false;
- _netStream.togglePause();//cuplayer.com播放
- _hRangeSlider.stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
- }
- private function onMD(data:Object):void
- {
- _duration = data.duration;
- }
- private function onEnterFrame(evt:Event):void
- {
- _lable.text = Math.floor(_netStream.time/60) +":"+ Math.round(_netStream.time%60)+"/"
- +Math.floor(_duration/60) +":"+ Math.round(_duration%60);
- var bigLoad:int = _netStream.bytesTotal;//视频文件大小
- var theLoad:int = _netStream.bytesLoaded;//当前加载大小
- _hRangeSlider.value = (theLoad/bigLoad)*_hRangeSlider.width;
- if(_bool)
- {
- //播放视频的指定位置
- _netStream.seek((_hRangeSlider2.value/_hRangeSlider2.width)*_duration);
- }
- else
- {
- _hRangeSlider2.value = (_netStream.time/_duration)*_hRangeSlider2.width;
- }
- }
- //根据传入0-1之间的数调节音量
- private function setSource(num:Number):void
- {
- _soundTransform = _netStream.soundTransform;
- _soundTransform.volume = num;
- _netStream.soundTransform = _soundTransform;
- }
- //静音和开发
- private function handSoundOff(EVT:Event):void
- {
- _soundOff_soundOff.label =_soundOff.label == "SounceOff"?"SounceOn":"SounceOff";
- if(_soundOff.label == "SounceOff")
- {
- sounceNum = 0;
- setSource(0);
- }
- else
- {
- sounceNum = 1;
- setSource(Math.round((_source.value/_source.width)*10)/10);
- }
- }
- //拖动音量滑块到指定位置
- private function onSoundMouseDown(evt:Event):void
- {
- _source.stage.addEventListener(MouseEvent.MOUSE_UP, onSoundMouseUp);
- }
- private function onSoundMouseUp(evt:Event):void
- {
- _source.stage.removeEventListener(MouseEvent.MOUSE_UP, onSoundMouseUp);
- if(sounceNum)//非静音
- {
- setSource(Math.round((_source.value/_source.width)*10)/10);
- }
- }
- }
- }
热门文章推荐
- 纯HLS(m3u8)跨平台技术(HLSPlayer,m3u8Player跨平台多终端)
- DiscuzX3.2酷播视频插件(dz论坛自定义视频插件带广告
- [微信视频]实现网站中的视频在微信平台上正常播放(超多组图)
- [rtsp]海康威视监控摄像头实现web端无插件监控实拍效果
- 很酷,酷播wordpress视频插件(支持PC/安卓/苹果跨平台播放)
- [组图]微信视频技术:支持微信视频直播和视频点播
- [AS3]as3.0的rtmp流媒体播放器写法源代码示例
- 一步一步教你制作FLV网页视频播放器
请稍候...