Flash Media Server, F4V 파일 및 FLV 파일은 스트리밍 또는 재생 중에 특정 데이터 포인트의 데이터가 들어 있는 이벤트 객체를 보낼 수 있다. 재생 중에 두 가지 방식으로 스트림이나 FLV 파일의 데이터를 처리할 수 있다.
client 속성을 이벤트 핸들러와 연결하여 데이터 객체를 받는다. NetStream.client 속성을 사용하여 특정 데이터 처리 함수를 호출하기 위한 객체를 지정한다. NetStream.client 속성에 할당된 객체는 onCuePoint(), onImageData(), onMetaData(), onPlayStatus(), onTextData() 및 onXMPData() 데이터 포인트를 수신할 수 있다. 그런 다음 해당 함수 내에 프로시저를 작성하여 재생 중에 스트림이나 FLV 파일로부터 반환되는 데이터 객체를 처리할 수 있다.
client 속성을 NetStream 클래스의 하위 클래스와 연결한 다음 데이터 객체를 받는 이벤트 핸들러를 작성한다. NetStream은 봉인 클래스다. 즉, 런타임 시 NetStream 객체에 속성이나 메서드를 추가할 수 없다. 그러나 NetStream의 하위 클래스를 만들고 그 하위 클래스에서 이벤트 핸들러를 정의하거나, 동적 하위 클래스를 만들고 그 하위 클래스의 인스턴스에 이벤트 핸들러 함수를 추가할 수는 있다.
스트리밍 또는 FLV 파일 데이터를 처리하기 위해 콜백 메서드를 호출할 객체를 지정한다. 기본 객체는 만들려는 NetStream 객체인 this다. client 속성을 다른 객체로 설정하면 해당 객체에서 콜백 메서드가 호출된다. NetStream.client 객체는 onCuePoint(), onImageData(), onMetaData(), onPlayStatus(), onTextData() 및 onXMPData() 함수를 호출하고 관련 데이터 객체를 받을 수 있다.
스트림을 통해 또는 재생 과정에서 데이터가 전달되면 데이터 이벤트 객체에 데이터가 채워진다.
[출처 as3.0 도움말 레퍼런스 NetStream class, client]
client 속성에 데이터를 처리하기 위한 콜백 메서드를 호출하지 않을 경우 다음과 같은 에러가 발생 된다.
ReferenceError: Error #1069: flash.net.NetStream에서 속성 onMetaData을(를) 찾을 수 없습니다. 기본값이 없습니다.
이를 해결 하기 위해서 다음과 같이 하위 클래스를 만들고 client 와 연결 시켜 줘야한다.
private function connectStream():void {
var stream:NetStream = new NetStream(connection);
stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
stream.client = new CustomClient();
var video:Video = new Video();
video.attachNetStream(stream);
stream.play(videoURL);
addChild(video);
}
}
}
class CustomClient {
public function onMetaData(info:Object):void {
trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate);
}
public function onCuePoint(info:Object):void {
trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type);
}
}
'prev record' 카테고리의 다른 글
[2010.05.10.월요일] FileReference (0) | 2013.07.14 |
---|---|
[2010.05.08.토요일] 디스플레이 계층간의 좌표, 전체화면으로 전환, metaData (0) | 2013.07.14 |
[2010.05.06.목요일] 비디오 제어 (0) | 2013.07.14 |
[2010.05.05.수요일] sound 제어 (0) | 2013.07.14 |
[2010.05.04.화요일] pure MVC (0) | 2013.07.14 |