OSMF で flv バイト配列を再生できるようになりました。前もって、netStream を拡張する新しいクラスを作成し、代わりに appendbytes を使用するようにその play メソッドをオーバーライドすることで、byteArray を再生することができました。それで私がしたことは、OSMFにそれを使わせることでした。これらのクラスを作成するためにこれを行いました: 1. ByteStreamElement - メディア要素 2. ByteStreamLoader - LoaderBase を拡張します 3. ByteStreamLoadTrait - LoadTrait を拡張します
netstrema シーク/プレイ メソッドのオーバーライド:
//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 を再生するために使用する何らかのプラグインを作成する必要があるのか はわかりません。もう1つのことは、私が本当に必要としているのは、必要に応じてプレーヤーにバイトを継続的に追加することです。それが、私がまだこれを使用していない理由であり、当分の間、これを理解するまでカスタムメイドの「ByteStreamプレーヤー」に固執します.