Теперь я могу проигрывать flv bytearrays в OSMF. Раньше я уже мог играть byteArray, создавая новый класс, который расширяет netStream и отменяет его метод воспроизведения вместо использования appendbytes. Так что я сделал, чтобы OSMF использовал его. Я сделал это создание этих классов: 1. ByteStreamElement - медиа элемент 2. ByteStreamLoader - расширяет LoaderBase 3. ByteStreamLoadTrait - расширяет LoadTrait
переопределяете netstremas искать/метод игры:
//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();
Im действительно не уверен, хотя если это лучший способ это сделать. Не уверен, что лучше всего я создал новые классы, или я должен был написать какой-то плагин для OSMF, чтобы использовать для воспроизведения bytearrays. И еще одно, что мне действительно нужно, это в случае необходимости добавлять в проигрыватель в случае необходимости. Вот почему я все еще не использую это и для среднего времени. Я придерживаюсь своего пользовательского «ByteStream player», пока не выясню это.
Не могли бы вы предоставить весь код, который вы использовали для архивирования этого результата? –