如何在OSMF中加载ByteArray FLV?

时间:2011-10-20 17:36:52

标签: actionscript-3 video-streaming bytearray flv osmf

我正在研究一个本地应用程序(它不是一个网站或者没有任何相关内容),我现在有各种FLV和一个非常简单的加密方法(就像在每个字节添加10个)。

我可以在解密后使用NetStream.appendBytes()加载/播放它们,但这只有在我读完所有视频数据后才会发生流式传输。

我真正需要的是使用我已经构建的基于OSMF的播放器,从远程网址流式传输这些视频,并在接收数据时进行解密。 我迷失在OSMF如何处理FLV,否则,我会尝试创建一个插件或类似的东西。 如果有人指出我如何处理,我会非常感激。

但是如果有人帮我找到一种使用OSMF加载本地文件的方法,传递ByteArray值而不是url(下面),我会很高兴。或者甚至给我指示创建一个OSMF插件来解决我的问题。

videoElement.resource = "video_url/video.flv";

这是我当前的代码,只是为了播放我解码的FLV字节数组

private function playBytes(bytes:ByteArray):void 
{
            // detecting it's header
            if (bytes.readUTFBytes(3) != "FLV")
            {
                _text.appendText("\nFile \""+ file +"\" is not a FLV")
                return void;
            }

            bytes.position = 0;
            netConnection.connect(null);
            netStream = new NetStream(netConnection);
            netStream.client = { onMetaData:function(obj:Object):void { } }
            video.attachNetStream(netStream);

            addChild(video); 


            // put the NetStream class into Data Generation mode
            netStream.play(null);
            // before appending new bytes, reset the position to the beginning
            netStream.appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN);
            // append the FLV video bytes
            netStream.appendBytes(bytes);
}

1 个答案:

答案 0 :(得分:1)

有趣的帖子,我有兴趣看到答案。我自己看了类似的东西,虽然没有流,但我遇到了以下情况。

http://ntt.cc/2008/07/15/bitsreader-read-bits-from-given-bytearray.html

传递字节数组后,可以使用10位数组的bits.read(8)。也许这会让你走上正确的道路?否则,我认为你需要将它拆开并基本上做较小的部分来缓冲,以便连接所有缓冲的数据......

只是一个想法,