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播放器”,直到我弄明白这一点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |