如何从Byte阵列播放视频?

Nav*_*oid 8 java encryption android bytearray

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

我的方法解密:

  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);
}
}
Run Code Online (Sandbox Code Playgroud)

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

Ber*_*ncı 6

经过大量搜索后,这个答案可能是一个总结。所有功劳都应归解决方案所有者所有。

由于VideoView只接受 URL 或文件,我们有两种解决方案;

解决方案1;使用流创建临时文件并将该文件提供给 videoView。

参考;/sf/answers/1508434721/

解决方案2;在 Android 本地系统上创建媒体服务器并向媒体服务器提供流,其中 videoView 被定向到本地主机进行流传输。

参考;/sf/answers/636736901/

其他参考;这非常有用,感谢 libeasy;/sf/answers/1096816241/


Ale*_*exR -1

您通常如何播放视频?您将InputStrem实例发送给玩家。所以你ByteArrayInputStream包装你的字节数组并将其发送给播放器。

  • 这是问题的答案吗? (6认同)
  • 但我想使用它 VideoView ..如何在不创建新文件的情况下使用它 (2认同)
  • 您找到解决方案了吗?我还尝试播放从本地数据库加载的视频,我真的必须将其保存到“磁盘”才能播放吗?VideoView 控件仅允许您设置用于播放的 Uri/File。也许还有另一种不使用 VideoView 来播放视频的方法? (2认同)