Как играть в формат FLAV byteArray в OSMF? - PullRequest
4 голосов
/ 09 января 2011

Я занимаюсь разработкой веб-приложения на flex, в котором есть функция записи времени выполнения путем создания снимка каждого кадра и последующего кодирования его в ByteArray для воспроизведения видео.

В настоящее время я использую NetStream.appendBytes () для воспроизведения ByteArray FLV. Это работает, но я только что узнал об OSMF и подумал об интеграции его в свое приложение.

Возможно ли воспроизвести flv byteArray в OSMF? Пример того, как это можно сделать, был бы просто великолепен. спасибо!

1 Ответ

4 голосов
/ 14 января 2011

Теперь я могу воспроизводить 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», пока не пойму это.

...