【问题标题】:Playing .mp4 file on zip without extracting zip在 zip 上播放 .mp4 文件而不提取 zip
【发布时间】:2013-12-06 02:33:18
【问题描述】:

在 SD 卡上,我有一个 zip 文件,其中包含一个视频文件 (.mp4)。我需要通过 VideoView 播放该视频文件而不提取 zip。

到目前为止我已经尝试过:

ZipFile zipFile = new ZipFile(new File("/sdcard/checking.zip"));
ZipEntry zipEntry = zipFile.getEntry("checking.mp4");
InputStream inStream  = zipFile.getInputStream(zipEntry);

但我没有找到任何可以播放来自InputStream 的视频的 API。 zipEntry.getSize() 确实返回值。

我从HERE尝试了videoView.setVideoURI(Uri.parse("//sdcard/checking.zip!/checking.mp4"));

但它显示“无法播放视频”。 那么我该如何在android上做到这一点(在标题中提到)。

【问题讨论】:

  • 协议在 // (http:// etc) 之前,所以试试 jar:file://sdcard/checking.zip!/checking.mp4
  • 还是不行!!给出 MediaPlayer:LogCat 上的路径为空
  • sdcard 是否直接映射到 //sdcard/(可能是 //storage/sdcard0/ 或其他) - 使用 developer.android.com/reference/android/os/… 而不是硬编码
  • 你有读取外部权限吗,我相信有些设备可能已经在强制执行了
  • 仍然返回:uri is:jar: file:///mnt/sdcard/checking.zip!/checking.mp4 MediaPlayer(3514): 路径为空

标签: android zip android-videoview


【解决方案1】:

使用 VideoView 或 MediaPlayer 你不能这样做

【讨论】:

    【解决方案2】:

    说实话,我也遇到了同样的问题。但是在扩展文件文档中,它说您需要以特定方式压缩文件才能直接从 zip 文件夹中读取。你不应该对里面的媒体应用任何压缩。

    希望这会有所帮助...

    我真的不知道如何像那样压缩。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      相关资源
      最近更新 更多