我正在开发一个flex应用程序,它具有通过快照每个帧然后将其编码成ByteArray进行视频回放来记录运行时间的功能。如何在OSMF中播放flv格式的byteArray?
我目前使用NetStream.appendBytes()播放ByteArray FLV。它正在工作,但我刚刚发现了OSMF,并将它与我的应用程序结合起来。
在OSMF中可以播放flv byteArray吗?如何做到这一点的例子会非常好。谢谢!
我正在开发一个flex应用程序,它具有通过快照每个帧然后将其编码成ByteArray进行视频回放来记录运行时间的功能。如何在OSMF中播放flv格式的byteArray?
我目前使用NetStream.appendBytes()播放ByteArray FLV。它正在工作,但我刚刚发现了OSMF,并将它与我的应用程序结合起来。
在OSMF中可以播放flv byteArray吗?如何做到这一点的例子会非常好。谢谢!
我现在可以在OSMF中播放flv bytearrays。之前,我已经能够通过创建一个扩展netStream的新类来播放byteArray,并将其播放方法重写为使用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播放器”,直到我明白了这一点。
你能否提供你用于实现的所有代码? – 2011-10-19 21:19:33