我正在开发一个本地应用程序(它不是一个网站,也不是什么相关的),我现在有各种 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);
}