我正在开发一个显示一系列 mp4 文件的应用程序。为了确保人们不只是从存储它们的 SD 卡中复制它们,我们希望对它们进行加密(目前使用 DES)。大多数加密文件(如图像和 xml)都可以在运行时轻松解密以供使用,但我在处理视频时遇到了问题。这一切都应该在内存中完成,因为在使用之前先将其解密到 SD 卡会使整个想法变得毫无用处。

有人对我应该如何做到这一点有任何想法吗?这些文件也非常大,因此请记住内存限制,并且最低应为 Android 2.3.3。

最佳答案

流式传输是您所谓的“全部在内存中完成”的另一种方式。您可以为 VideoView 提供文件路径或流的 Uri。
libmedia 是我为精确解决此功能而开发的库。

就像是:

mServer = new LocalSingleHttpServer();
mServer.setCipher(myGetCipher());
mServer.start();
path = mServer.getURL(path);
mVideoView.setVideoPath(path);
mVideoView.start();

请注意,本地 http 服务器并没有那么简单,因为它必须处理由于可能的 VideoView.seekTo() 导致的跳转。

关于Android 解密并在运行时播放 mp4,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9785312/

10-10 08:40