Как играть в формат FLAV byteArray в OSMF?
Я занимаюсь разработкой веб-приложения на гибком носителе, в котором есть функция записи времени выполнения путем создания снимка каждого кадра, а затем кодирования его в ByteArray для воспроизведения видео.
В настоящее время я использую NetStream.appendBytes() для воспроизведения ByteArray FLV. Это работает, но я только что узнал об OSMF и обдумывал, как интегрировать его в свое приложение.
Можно ли играть в flv byteArray в OSMF? Пример того, как это можно сделать, был бы просто великолепен. Спасибо!
1 ответ
Теперь я могу играть в flv bytearrays в OSMF. Ранее я уже мог играть в byteArray, создав новый класс, расширяющий netStream, и переопределив его метод play, чтобы использовать вместо него 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();
Я действительно не уверен, хотя, если это лучший способ сделать это. Не уверен, что лучше всего, если я создал новые классы, или я должен был написать какой-нибудь плагин для OSMF, чтобы использовать его для воспроизведения байтовых массивов. И еще одна вещь, в которой я действительно нуждаюсь, это чтобы он постоянно добавлялся в плеер в случае необходимости. Вот почему я до сих пор не использую это, и пока что я буду придерживаться своего собственного "плеера ByteStream", пока не пойму это.