java - 如何播放字节数组中的视频?

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

请帮帮我,我卡在这里了?

最佳答案

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

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

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

引用; https://stackoverflow.com/a/21549067/1847645

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

引用; https://stackoverflow.com/a/9096241/1847645

其他引用; 这非常有用,感谢 libeasy; https://stackoverflow.com/a/15668803/1847645

关于java - 如何播放字节数组中的视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9495366/

相关文章:

java - Java 内部库与外部库

java - 在 Java 中为对象字段赋值?

java - 如何一次只允许 3 个中的 1 个 android 切换按钮打开

python - 如果密码无效,使 AES 解密失败

除 tomcat 之外的 Java Web 服务

java - 在phonegap应用程序中调用应用程序引擎API

android - 'Gradle 同步失败 : Gradle DSL method not found: 'minSdkVersdion()'

android - 启动 Android Low Memory killer 的时机

c++ 将带有 ":"的十六进制字符串转换为原始 "binary"字符串

visual-studio-2010 - 使用 Visual Studio 2010 ClickOnce 发布加密文件