Cvideo

Video객체를 그냥 사용하려고 하면 여러 줄의 코딩이 필요합니다. FMS등과 연결할 때는 세밀한 조율이 필요하겠으나 일반적인 웹서버에서 스트리밍으로 재생할 때는 단순하게 사용할 수 있는 방법이 필요합니다.
Cvideo는 Video를 직접 상속받아 만들었습니다. 내부에 귀찮은 NetStream과 NetConnection의 구현을 자동화하고 콜백함수도 내장하고 있습니다.

package com.bsidesoft.display{

	import flash.display.*;
	import flash.events.*;
	import flash.media.*;
	import flash.net.*;

	final public class Cvideo extends Video{

		private var _url:String;
		private var _stream:NetStream;
		private var _duration:uint;
		private var _resize:Function;
		private var _end:Function;

		public function Cvideo($width:int=320,$height:int=240){
			super($width,$height);
			var c:NetConnection=new NetConnection();
			c.connect(null);
			_stream=new NetStream(c);
			_stream.client=this;
			_stream.addEventListener(NetStatusEvent.NET_STATUS,hnStatus);
			attachNetStream(_stream);
		}
		public function onMetaData($data:Object):void{
			_duration=$data.duration;
		}
		public function play($url:String,$p:Object=null):void{
			_stream.play($url);
			_resize=null;
			_end=null;
			if($p){
				if($p['resizer'])_resize=$p['resizer'];
				if($p['end'])_end=$p['end'];
			}
		}
		public function resume():void{_stream.resume()}
		public function stop():void{_stream.pause()}
		private function hnStatus($e:NetStatusEvent):void{
			if(_resize)if(videoWidth>0)if(videoWidth!=width)_resize(videoWidth,videoHeight);
			if(_end)if($e.info.code==='NetStream.Play.Stop')_end();
		}
	}
}


관련된 글:

  1. Stream을 만들어보기
  2. Stream을 실전에 활용하기 1
  3. Sound 사용하지 않기 – 2
  4. PowerFl Compile Process Presentation
  5. CcircleStack

Leave a Reply