2012-05-14 4 views
4

여러 개의 동영상으로 ipad 응용 프로그램을 만들고 싶습니다. 모든 동영상은 플래시에 내장되어야하므로 스트리밍하지 않아야합니다. 그런 식으로 타임 라인에 flv를 삽입 할 수는 있지만 라이브러리에있는 비디오 객체를 참조하는 ActionScript 또는 ActionScript에서 삽입 태그를 사용하여 재생을 제어 할 수있는 방법이 있습니다. 더 많은 제어권을 얻을 수 있습니다. 또한 큐 포인트에 액세스 할 수 있습니다.flv를 플래시에 삽입하고 AS3으로 재생하는 방법은 무엇입니까?

답변

7
당신은 파일을 포함 및 NetStream 바이트 추가해야

:

[Embed(source = "movie.flv", mimeType = "application/octet-stream")] 
public var bytes:Class; 

public var video:Video = new Video(640, 480); 

public function Main():void { 

    addChild(video); 

    var nc:NetConnection = new NetConnection(); 
    nc.addEventListener(NetStatusEvent.NET_STATUS , onConnect); 
    nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR , trace); 


    var metaSniffer:Object=new Object(); 
    nc.client=metaSniffer; 
    metaSniffer.onMetaData=getMeta; 
    nc.connect(null); 
} 

private function getMeta (mdata:Object):void { 
    video.width=mdata.width/2; 
    video.height=mdata.height/2; 
}; 

private function onConnect(e:NetStatusEvent):void { 
    if (e.info.code == 'NetConnection.Connect.Success') { 
     trace(e.target as NetConnection); 
     var ns:NetStream = new NetStream(e.target as NetConnection); 

     ns.client = {}; 
     var file:ByteArray = new bytes(); 
     ns.play(null); 

     ns.appendBytes(file); 
     video.attachNetStream(ns); 
    } 

} 
+0

비디오가이 방법을 사용하여 재생을 완료하면 알 수있는 방법이 있나요를? 더 이상 'NetStream.Play.Stop'NetStatusEvent를 가져 오지 않습니다. – Scott

+0

메타 데이터 및 확인 위치에서 비디오 길이를 가져 오면 작업이 전달되지 않는다는 테스트를하지 않았습니다. – turbosqel

+0

작동하지 않습니다 - 알 수없는 메소드'ns.appendBytes()' – rustyx

관련 문제