我正在用 flex 开发一个 web 应用程序,它具有通过对每个帧进行快照然后将其编码为 ByteArray 以进行视频播放来记录运行时的功能。
我目前正在使用 NetStream.appendBytes() 播放 ByteArray FLV。它正在工作,但我刚刚发现了 OSMF 并考虑将其集成到我的应用程序中。
可以在 OSMF 中播放 flv byteArray 吗?一个关于如何完成的例子将是非常棒的。谢谢!
我正在用 flex 开发一个 web 应用程序,它具有通过对每个帧进行快照然后将其编码为 ByteArray 以进行视频播放来记录运行时的功能。
我目前正在使用 NetStream.appendBytes() 播放 ByteArray FLV。它正在工作,但我刚刚发现了 OSMF 并考虑将其集成到我的应用程序中。
可以在 OSMF 中播放 flv byteArray 吗?一个关于如何完成的例子将是非常棒的。谢谢!
我现在可以在 OSMF 中播放 flv 字节数组。之前,我已经能够通过创建一个扩展 netStream 的新类并覆盖其播放方法以使用 appendbytes 来播放 byteArray。所以我所做的就是让 OSMF 使用它。我这样做是为了创建这些类: 1. ByteStreamElement - 媒体元素 2. ByteStreamLoader - 扩展 LoaderBase 3. ByteStreamLoadTrait - 扩展 LoadTrait
覆盖 netstrema 搜索/播放方法:
//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 播放器”,直到我弄清楚这一点。