비디오 재생 제어Flash Player 9 이상, Adobe AIR 1.0 이상 NetStream 클래스는 비디오 재생 제어를 위한 네 가지 주요 메서드를 제공합니다. pause(): 비디오 스트림 재생을 일시 중지합니다. 비디오가 이미 일시 정지된 경우 이 메서드를 호출해도 아무 것도 수행되지 않습니다. resume(): 일시 중지된 비디오 스트림의 재생을 다시 시작합니다. 비디오가 이미 재생 중인 경우 이 메서드를 호출하면 아무 작업도 수행되지 않습니다. seek(): 지정된 위치(스트림 시작 부분부터 초 단위의 오프셋)에 가장 가까운 키프레임을 찾습니다. pause(): 스트림 재생을 일시 중지 또는 다시 시작합니다. 참고: stop() 메서드가 없습니다. 스트림을 멈추려면 재생을 일시 정지한 후 비디오 스트림의 시작 부분을 찾아야 합니다.
참고: play() 메서드는 재생을 다시 시작하지 않으며 비디오 파일 로드에 사용됩니다.
다음 예제에서는 여러 버튼을 사용하여 비디오를 제어하는 방법을 설명합니다. 다음 예제를 실행하려면 새 문서를 만들고 작업 영역에 버튼 인스턴스를 네 개(pauseBtn, playBtn, stopBtn, togglePauseBtn) 추가합니다. var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); ns.play("video.flv"); function asyncErrorHandler(event:AsyncErrorEvent):void { // ignore error } var vid:Video = new Video(); vid.attachNetStream(ns); addChild(vid); pauseBtn.addEventListener(MouseEvent.CLICK, pauseHandler); playBtn.addEventListener(MouseEvent.CLICK, playHandler); stopBtn.addEventListener(MouseEvent.CLICK, stopHandler); togglePauseBtn.addEventListener(MouseEvent.CLICK, togglePauseHandler); function pauseHandler(event:MouseEvent):void { ns.pause(); } function playHandler(event:MouseEvent):void { ns.resume(); } function stopHandler(event:MouseEvent):void { // Pause the stream and move the playhead back to // the beginning of the stream. ns.pause(); ns.seek(0); } function togglePauseHandler(event:MouseEvent):void { ns.togglePause(); } 비디오가 재생되는 동안 pauseBtn 버튼 인스턴스를 클릭하면 비디오 파일이 일시 정지됩니다. 비디오가 이미 일시 정지된 경우에는 이 버튼을 클릭해도 아무 효과가 없습니다. 재생이 이미 일시 정지되어 있는 경우 playBtn 버튼 인스턴스를 클릭하면 비디오 재생이 다시 시작되지만, 비디오가 이미 재생 중인 경우에는 이 버튼을 클릭해도 아무 효과가 없습니다. 비디오 스트림의 끝 감지비디오 스트림의 시작과 끝을 수신하려면 이벤트 리스너를 NetStream 인스턴스에 추가하여 netStatus 이벤트를 수신해야 합니다. 다음 코드에서는 비디오 재생 중 다양한 코드를 수신하는 방법을 보여 줍니다. ns.addEventListener(NetStatusEvent.NET_STATUS, statusHandler); function statusHandler(event:NetStatusEvent):void { trace(event.info.code) } 이전 코드는 다음을 출력합니다. NetStream.Play.Start NetStream.Buffer.Empty NetStream.Buffer.Full NetStream.Buffer.Empty NetStream.Buffer.Full NetStream.Buffer.Empty NetStream.Buffer.Full NetStream.Buffer.Flush NetStream.Play.Stop NetStream.Buffer.Empty NetStream.Buffer.Flush 특히 수신할 두 코드는 비디오 재생의 시작과 끝을 알리는 "NetStream.Play.Start"와 "NetStream.Play.Stop"입니다. 다음 코드에서는 switch 문을 사용하여 이러한 두 코드를 필터링하고 메시지를 추적합니다. function statusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetStream.Play.Start": trace("Start [" + ns.time.toFixed(3) + " seconds]"); break; case "NetStream.Play.Stop": trace("Stop [" + ns.time.toFixed(3) + " seconds]"); break; } } 사용자는 netStatus 이벤트(NetStatusEvent.NET_STATUS)를 수신하여 현재 비디오 재생 완료 시 재생 목록에 있는 다음 비디오를 로드하는 비디오 플레이어를 만들 수 있습니다. |
|