2011-01-09 5 views
4

Flex에서 웹 응용 프로그램을 개발 중입니다. 각 웹 응용 프로그램은 각 프레임의 스냅 샷을 가지고 비디오를 재생하기 위해 ByteArray로 인코딩함으로써 런타임을 기록하는 기능을 갖추고 있습니다.OSMF에서 flv 형식의 byteArray를 재생하는 방법은 무엇입니까?

현재 NetStream.appendBytes()를 사용하여 ByteArray FLV를 재생하고 있습니다. 그것은 작동하지만, 방금 내 응용 프로그램에서 그것을 통합 OSMF 및 생각에 대해 알게되었습니다.

OSMF에서 flv byteArray를 재생할 수 있습니까? 그것이 어떻게 행해질 수 있는지에 대한 예는 완전히 위대한 것입니다. 감사!

답변

4

이제 OSMF에서 flv bytearrays를 재생할 수 있습니다. 미리 netStream을 확장하고 appendbytes를 대신 사용하는 play 메서드를 재정의하는 새로운 클래스를 만들어서 byteArray를 재생할 수있었습니다. 그래서 내가 한 것은 OSMF가 그것을 사용하게하는 것이 었습니다. 미디어 요소 2 ByteStreamLoader - -

무시 netstremas이/플레이 방법을 모색 LoadTrait을 확장 - 3. ByteStreamLoadTrait LoaderBase를 확장 1. ByteStreamElement :

//manually dispatch seek event since we override seek() 
dispatchEvent(new NetStatusEvent(NetStatusEvent.NET_STATUS,false,false, {code:"NetStream.Play.Seek", level:"status"})); 

//look for byte position based on _seekTime value 
flvStream = _sfw.getFlvStream(false); 
_seekTime = parameters[1] * 1000; //netstream time in milliseconds 
_flvParser.parse(flvStream, false, flvTagSeeker); 
flvStream.position = _flvParserProcessed; 

//append flvtag from the new byte position to end of flv byteArray 
var tmp:ByteArray = new ByteArray(); 
flvStream.readBytes(tmp, 0, flvStream.bytesAvailable); 
_flvParserProcessed = 0; 
this.appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK); 
appendBytes(tmp) 

그리고처럼 사용하여 나는이 이러한 클래스를 생성했다 이 :

mediaPlayerSprite = new MediaPlayerSprite(); 
addChild(mediaPlayerSprite); 
mediaPlayerSprite.media = new ByteStreamElement(); 

이것이 정말로 최선의 방법이라면 정말로 확신하지 못합니다. 내가 새로운 클래스를 만든 것이 가장 좋은 것인지 확실하지 않거나 bytearrays를 사용하기 위해 OSMF 용 일종의 플러그인을 작성해야합니다. 그리고 또 다른 한 가지는, 필자가 정말로 필요로하는 것은 필요한 경우 플레이어에 contendually appendbytes를 추가하는 것입니다. 그것이 바로 Im을 사용하지 않는 이유입니다.이 말을하기 전까지는 "ByteStream player"라는 맞춤법으로 제작 된 아픈 시간을 보냈습니다.

+1

그 결과로 얻은 모든 코드를 제공해 주시겠습니까? –

관련 문제