从zip文件播放媒体而无需解压缩

Sna*_*ler 5 zip android android-mediaplayer

我知道在SO上已经有一些类似的问题,但是它们与播放文件之前提取文件有关。

此处的Android文档中它说明您可以直接从.zip文件播放文件,而无需将其解压缩。

提示:如果要将媒体文件打包为ZIP,则可以对具有偏移量和长度控件(例如MediaPlayer.setDataSource()和SoundPool.load())的文件使用媒体播放调用, 而无需解压缩ZIP。为了使它起作用,在创建ZIP软件包时,不得对媒体文件执行其他压缩。例如,使用zip工具时,应使用-n选项来指定不应压缩的文件后缀:

zip -n .mp4; .ogg main_expansion media_files

我已经制作了一个(未压缩的)zip程序包,但是我无法弄清楚如何从ZipEntryFileDescriptor,而且他们也没有进一步解释。我如何在FileDescriptor不解压缩zip文件的情况下获得文件?

sti*_*ike 1

try {
    ZipFile zf= new ZipFile(filename);
    ZipEntry ze = zip.getEntry(fileName);
    if (ze!= null) {
        InputStream in = zf.getInputStream(ze);
        File f = File.createTempFile("_AUDIO_", ".wav");
        FileOutputStream out = new FileOutputStream(f);
        IOUtils.copy(in, out);
        // play f
    }
} catch (IOException e) {

}
Run Code Online (Sandbox Code Playgroud)

可能重复的问题