我正在开发一个显示一系列 mp4 文件的应用程序。为了确保人们不只是从存储它们的 sdcard 中复制它们,我们要对它们进行加密(目前使用 DES)。大多数加密文件(如图像和 xml)都可以在运行时轻松解密以供使用,但我的视频有问题。它应该全部在内存中完成,因为在使用它之前先将它解密到 sdcard 会使整个想法变得无用。
有人知道我应该如何做到这一点吗?这些文件也非常大,因此请记住内存限制,最低应为 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/