Ich bin jetzt in der Lage, FLV-Bytearrays in OSMF zu spielen. Zuvor konnte ich byteArray bereits spielen, indem ich eine neue Klasse erstellte, die netStream erweiterte und seine Wiedergabemethode überschrieb, um stattdessen appendbytes zu verwenden. Also habe ich OSMF dazu gebracht, es zu benutzen. Ich tat dies, diese Klassen zu erstellen: 1. ByteStreamElement - Medienelement 2. ByteStreamLoader - erstreckt LoaderBase 3. ByteStreamLoadTrait - erweitert LoadTrait
zwingende netstremas suchen/play-Methode:
//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)
Und mit ihm wie dies:
mediaPlayerSprite = new MediaPlayerSprite();
addChild(mediaPlayerSprite);
mediaPlayerSprite.media = new ByteStreamElement();
Im wirklich nicht sicher, aber wenn dies der beste Weg, es zu tun. Ich bin mir nicht sicher, ob es am besten ist, dass ich neue Klassen erstellt habe, oder ich hätte eine Art Plugin für OSMF geschrieben, um Bytearrays zu spielen. Und eine andere Sache ist, dass, was ich wirklich brauche, ist es appliedbytes in den Spieler für notfalls anfügen. Deshalb benutze ich das immer noch nicht und in der Zwischenzeit bleibe ich bei meinem benutzerdefinierten "ByteStream Player", bis ich das herausgefunden habe.
Können Sie den gesamten Code, den Sie für das Archiv verwendet haben, angeben? –