2011-01-09 6 views
4

フレックスのWebアプリケーションを開発しています。これは、各フレームのスナップショットを作成し、それをビデオ再生用のByteArrayにエンコードすることで、ランタイムを記録する機能を備えています。OSMFでflvでフォーマットされたbyteArrayを再生するには?

現在、ByteArray FLVを再生するためにNetStream.appendBytes()を使用しています。それは働いていますが、私はOSMFについて知り、それを私のアプリケーションに統合することを考えました。

OSMFでflv byteArrayを再生することはできますか?どのようにそれを行うことができるかの例は完全に素晴らしいでしょう。ありがとう!

答えて

4

OSMFでflv bytearraysを再生できるようになりました。事前に、私はすでにnetStreamを継承し、その代わりにappendbytesを使用するplayメソッドをオーバーライドする新しいクラスを作成することで、byteArrayを再生することができました。だから、私がしたのはOSMFにそれを使用させることでした。メディア要素 2. ByteStreamLoader - -

オーバーライドnetstremasは/ playメソッド求める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(); 

私は本当にこれを行うには最良の方法ですが、確かにわかりません。私が新しいクラスを作成したのが最善か、OSMFがbytearrayを使うために何らかのプラグインを書いていたはずです。そして、別のことは、私が本当に必要とするのは、必要に応じてプレイヤーの中にcontendually appendbytesを追加することです。だから私はまだこれを使用していないし、平均時間の間私はこれを把握するまで、私のカスタム "ByteStreamプレーヤー"に固執する理由です。

+1

結果として得られたすべてのコードを提供できますか? –