我正在开发一个需要加密视频文件的应用程序,它运行得很好。但我用来解密的方法会返回视频文件中的视频。无论如何,我可以使用该阵列播放视频,而无需创建新文件。
我的方法解密:
private static byte[] decrypt(byte[] raw, byte[] encrypted) throws EncrypterException {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
try {
final Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
return cipher.doFinal(encrypted);
} catch (Exception e) {
throw new EncrypterException(e);
}
}
请帮助我,我被困在这里?
答案 0 :(得分:1)
经过大量搜索,这个答案可能是一个总结。所有学分都应该是解决方案所有者。
由于VideoView
只接受网址或文件,我们有两个解决方案;
解决方案1; 使用流创建临时文件并将该文件提供给videoView。
参考值; https://stackoverflow.com/a/21549067/1847645
解决方案2; 在Android本地系统上创建媒体服务器并向媒体服务器提供流,其中videoView将定向到localhost进行流式传输。
参考值; https://stackoverflow.com/a/9096241/1847645
其他参考; 由于自由,这是非常有用的; https://stackoverflow.com/a/15668803/1847645
答案 1 :(得分:-1)
你通常如何播放视频?您将InputStrem
实例发送给播放器。
所以你ByteArrayInputStream
包装你的字节数组并将其发送给播放器。
答案 2 :(得分:-1)
您不应该使用静态文件但使用流来提供VideoView。如何制作这个流? 请参阅Android Supported Media Formats。最简单的可能是本地http服务器。 LocalSingleHttpServer是实现此类解决方案的库组件的一个示例。