AS3 NetStream클래스의 onPlayStatus / NetStream.Play.Complete

FLV파일을 재생하는데에는, 여러가지 클래스들을 이용해서 출력을 할수 있습니다. (Video, FLVPlayBack, NetStream, VideoPlayer… )
이중 NetStream을 이용하여, Video객체에 attachNetStream하는 방식에 있어, 문제점을 발견하여 해결방법을 찾고자 이 글을 포스팅합니다.

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/NetStream.html#play
위의 주소에서 NetStream객체의 Reference를 참고할수 있습니다.

영상재생이 끝난 시점을 체크하려면 VideoEvent.COMPLETE 와 같은 이벤트를 리스너에 연결해야되는데,
이는  onPlayStatus에 “NetStream.Play.Complete”형태로 존재합니다.
하지만 특이한건, 레퍼런스를 보면 알겠지만, 이 이벤트는 addEventListener()메서드를 사용할수없으며,
어떤종류의 EventDispatcher도 사용불가라는 점입니다. 이벤트를 청취하려는 어떠한 방식도 불가능 하다는 것이지요.

재생이 완료된 시점에서 “NetStream.Play.Complete”라는 이벤트를 체크해서 처리하려했으나, 이상하게도 Callback이 작동하지않아, “NetStream.Play.Stop”로 처리했습니다.
이 문제와 관련해서 구글링을 해봤더니, 저와 비슷한 문제로 올라온 글들이 꽤 되네요.

이 이벤트는 FMS(Flash Media Server)에서 사용하기위해 의도된 이벤트라서, FlashPlayer나 AIR API에는 포함되어있지않고, 편의를 위해 Reference에는 제공된다군요.
현재 CDN서비스를 사용하고있기는 하나, 이는 FMS제품군과는 다르기에 이 이벤트를 정상적으로 받아오지 못하나봅니다. ㅠㅠ




(주)리화이트 대표 / CEO & Founder

Next Article[스크랩] FDS2 & 톰캣4.1.34 설치