3

我正在开发一个本地应用程序(它不是一个网站,也不是什么相关的),我现在有各种 FLV 和一个非常简单的加密方法(就像在每个字节添加 10 个一样)。

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

我真正需要的是从远程 url流式传输这些视频,并在接收数据时解密,使用我已经构建的基于 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);
}
4

1 回答 1

1

有趣的帖子,我很想看到答案。我自己看着类似的东西,虽然不是用流,但我遇到了以下情况。

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

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

只是一个想法,

于 2011-10-20T17:48:09.863 回答