加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – 如何在OSMF中播放flv格式的byteArray?

发布时间:2020-12-15 01:45:52 所属栏目:百科 来源:网络整理
导读:我正在开发一个flex的web应用程序,它具有记录运行时的功能,它具有每个帧的快照,然后将其编码为ByteArray以进行视频回放. 我目前正在使用NetStream.appendBytes()来播放ByteArray FLV.它正在运行,但我刚刚发现了OSMF,并且正在考虑将它集成到我的应用程序中.
我正在开发一个flex的web应用程序,它具有记录运行时的功能,它具有每个帧的快照,然后将其编码为ByteArray以进行视频回放.

我目前正在使用NetStream.appendBytes()来播放ByteArray FLV.它正在运行,但我刚刚发现了OSMF,并且正在考虑将它集成到我的应用程序中.

可以在OSMF中播放flv byteArray吗?关于如何做到的一个例子将是非常好的.谢谢!

解决方法

我现在能够在OSMF中播放flv bytearrays.事先,我已经能够通过创建一个扩展netStream并覆盖其play方法以使用appendbytes的新类来播放byteArray.所以我做的是让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,{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,flvTagSeeker);
flvStream.position = _flvParserProcessed;

//append flvtag from the new byte position to end of flv byteArray 
var tmp:ByteArray = new ByteArray();
flvStream.readBytes(tmp,flvStream.bytesAvailable);
_flvParserProcessed = 0;
this.appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK);
appendBytes(tmp)

并使用它像这样:

mediaPlayerSprite = new MediaPlayerSprite();
 addChild(mediaPlayerSprite);
 mediaPlayerSprite.media = new  ByteStreamElement();

我真的不确定这是否是最佳方式.不确定我是否最好创建新类,或者我应该为OSMF编写某种插件以用于播放bytearrays.另一件事是,我真正需要的是在需要的情况下在播放器中连续追加.这就是为什么我仍然没有使用这个,并且平均时间我坚持使用我定制的“ByteStream播放器”,直到我弄明白这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读