2011-01-09 10 views
4

Ich entwickle eine Web-Anwendung in Flex, die eine Funktion der Aufzeichnung der Laufzeit haben, indem ich einen Schnappschuss von jedem Rahmen dann kodiere es in ein ByteArray für Videowiedergabe.Wie FLV-formatierte ByteArray in OSMF spielen?

Ich verwende derzeit NetStream.appendBytes() zum Abspielen der ByteArray FLV. Es funktioniert, aber ich habe gerade von OSMF erfahren und überlegt, es in meine Anwendung zu integrieren.

Es ist möglich, das FLV ByteArray in OSMF zu spielen? Ein Beispiel dafür, wie es gemacht werden kann, wäre total großartig. Vielen Dank!

Antwort

4

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.

+1

Können Sie den gesamten Code, den Sie für das Archiv verwendet haben, angeben? –