如何从Byte阵列播放视频?

时间:2012-02-29 07:50:30

标签: java android encryption bytearray

我正在开发一个需要加密视频文件的应用程序,它运行得很好。但我用来解密的方法会返回视频文件中的视频。无论如何,我可以使用该阵列播放视频,而无需创建新文件。

我的方法解密:

  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);
}
}

请帮助我,我被困在这里?

3 个答案:

答案 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是实现此类解决方案的库组件的一个示例。