⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 videocollection.as

📁 直播视频采集端程序. 用as3写的视频采集工具
💻 AS
字号:
/**
* ...
* @author Default
* @version 0.1
*/

package {
	
	import fl.video.VideoPlayer;
	import flash.display.Sprite;
	import flash.net.NetConnection;
	import flash.net.NetStream;
	import flash.net.URLLoader;
	import flash.utils.Timer;
	import flash.events.*;
	import flash.events.NetStatusEvent;
	import flash.text.TextField;
	import flash.net.ObjectEncoding;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.media.Camera;

	public class  VideoCollection extends Sprite {		
		var videoWidth:int = 320;		
		var videoHeight:int = 240;		
		var frame:int = 8;		
		var autoAdjust:Boolean = false;		
		var bandwidth:int = 0;		
		var quality:int = 80;		
		var keyFrameInterval:int = 15;
		var level1:int = 0;
		var level2:int = 2000;
		
		var FMSIP:String = "61.174.61.73";
		var appName:String = "test";
		var FMSAddress:String = "rtmp://"+FMSIP+"/"+appName;
		
		var streamName1:String = "1-1";		
		var streamName2:String = "1-2";		
		var streamName3:String = "1-3";		
		var streamName4:String = "1-4";
		
		var isEnable1:String = "true";		
		var isEnable2:String = "true";	
		var isEnable3:String = "true";		
		var isEnable4:String = "true";

		var con:NetConnection;
		
		var my_video1:VideoPlayer = new VideoPlayer();	
		var my_video2:VideoPlayer = new VideoPlayer();	
		var my_video3:VideoPlayer = new VideoPlayer();	
		var my_video4:VideoPlayer = new VideoPlayer();	
		
		var myTimer:Timer;
		private var urlLoader:URLLoader;
		private var my_xml:XML;
		
		// var camera:Camera = Camera.getCamera();
		
		public function VideoCollection() {
			myTimer = new Timer(1000);
			myTimer.addEventListener(TimerEvent.TIMER, timerHandle);
			
			addChild(my_video1);
			addChild(my_video2);
			addChild(my_video3);
			addChild(my_video4);		
			my_video1.x =153 ;
			my_video1.y =50 ;
			my_video1.x =480 ;
			my_video1.y = 50 ;
			my_video1.x =153 ;
			my_video1.y = 260 ;
			my_video1.x =480 ;
			my_video1.y = 260 ;
			my_video1.width = 200;
			my_video1.height = 178;	
			my_video2.width = 200;
			my_video2.height = 178;	
			my_video3.width = 200;
			my_video3.height = 178;	
			my_video4.width = 200;
			my_video4.height = 178;	
			
			con = new NetConnection();
			con.objectEncoding = ObjectEncoding.AMF0;
			con.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);	
			
			getData();
			
		}
		private function getData():void {
			var urlRequest:URLRequest = new URLRequest( "video.xml" );			
			urlLoader = new URLLoader( urlRequest );	
			urlLoader.addEventListener( Event.COMPLETE, LoaderHandler );
		}
		private function timerHandle(e:Event):void {
			init();
		}
		private function netStatusHandler(event:NetStatusEvent):void {
			trace(event.info.code);
            switch (event.info.code) {				
                case "NetConnection.Connect.Success":
					if(myTimer.running)	myTimer.stop();
					msgTxt.text = "连接fms服务器成功!";
                    break;
                case "NetConnection.Connect.Failed":
                case "NetConnection.Connect.Closed":
                    msgTxt.text = "连接fms服务器失败!";
					if(!myTimer.running)myTimer.start();
                    break;
            }
        }
		
		public function LoaderHandler( e:Event ):void {			
			my_xml = new XML(urlLoader.data);	
			
			FMSIP = my_xml.Channels.@FMSIP;
			appName = my_xml.Channels.@AppName;
			
			streamName1 = my_xml.Channels.Channel[0].@name;
			isEnable1 = my_xml.Channels.Channel[0].@isEnable;
			streamName2 = my_xml.Channels.Channel[1].@name;
			isEnable2 = my_xml.Channels.Channel[1].@isEnable;
			streamName3 = my_xml.Channels.Channel[2].@name;
			isEnable3 = my_xml.Channels.Channel[2].@isEnable;
			streamName4 = my_xml.Channels.Channel[3].@name;
			isEnable4 = my_xml.Channels.Channel[3].@isEnable;

			videoWidth=my_xml.VideoControl.width;
			videoHeight=my_xml.VideoControl.height;	
			frame=my_xml.VideoControl.frame;	
			autoAdjust=my_xml.VideoControl.autoAdjust;	
			bandwidth=my_xml.VideoControl.bandwidth;	
			quality=my_xml.VideoControl.quality;	
			keyFrameInterval=my_xml.VideoControl.keyFrameInterval;	
			level1=my_xml.VideoControl.level1;	
			level2 = my_xml.VideoControl.level2;	
			
			FMSAddress = "rtmp://" + FMSIP + "/" + appName;			
			
			trace(FMSIP);
			trace("appName:" + appName);
			
			trace(streamName1);
			trace(isEnable1);
			trace(streamName2);
			trace(isEnable2);
			trace(streamName3);
			trace(isEnable3);
			trace(streamName4);
			trace(isEnable4);
			
			trace(videoWidth);
			trace(videoHeight);
			trace(frame);
			trace(autoAdjust);
			trace(bandwidth);
			trace(quality);
			trace(keyFrameInterval);
			trace(level1);
			trace(level2);
			
			init();
		}		
		
		private	function init() {
			trace(FMSAddress);
			con.close();
			con.connect(FMSAddress);
			if (isEnable1=="true") {
				var my_cam1 = Camera.getCamera("0");
				trace("camera 0");
				trace(my_cam1);
				if(my_cam1!=null){
					my_cam1.setQuality(bandwidth,quality);
					my_cam1.setLoopback(true);
					my_cam1.setMotionLevel(level1,level2);
					my_cam1.setMode(videoWidth,videoHeight,frame,autoAdjust);		
					my_video1.attachCamera(my_cam1);	
					var stream1:NetStream = new NetStream(con);		
					stream1.attachCamera(my_cam1);		
					stream1.publish(streamName1);
				}
			}		 
			if (isEnable2=="true") {
				var my_cam2 = Camera.getCamera("1");
				trace("camera 1");
				if(my_cam2!=null){
					my_cam2.setQuality(bandwidth,quality);
					my_cam2.setLoopback(false);
					my_cam2.setMotionLevel(level1,level2);
					my_cam2.setMode(videoWidth,videoHeight,frame,autoAdjust);		
					my_video2.attachCamera(my_cam2);	
					var stream2:NetStream = new NetStream(con);	
					stream2.attachCamera(my_cam2);		
					stream2.publish(streamName2);
				}
			}
			if (isEnable3=="true") {
				var my_cam3 = Camera.getCamera("2");
				if(my_cam1!=null){
					my_cam3.setQuality(bandwidth,quality);
					my_cam3.setLoopback(false);
					my_cam3.setMotionLevel(level1,level2);
					my_cam3.setMode(videoWidth,videoHeight,frame,autoAdjust);		
					my_video3.attachCamera(my_cam3);		
					var stream3:NetStream = new NetStream(con);				
					stream3.attachCamera(my_cam3);				
					stream3.publish(streamName3);
				}
			}

			if (isEnable4=="true") {
				var my_cam4 = Camera.getCamera("3");
				if(my_cam1!=null){				
					my_cam4.setQuality(bandwidth,quality);
					my_cam4.setLoopback(false);
					my_cam4.setMotionLevel(level1,level2);
					my_cam4.setMode(videoWidth,videoHeight,frame,autoAdjust);				
					my_video4.attachCamera(my_cam4);				
					var stream4:NetStream = new NetStream(con);				
					stream4.attachCamera(my_cam4);				
					stream4.publish(streamName4);	
				}
			}
		}
	}	
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -