首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android APK扩展文件,无法读取.wav文件

Android APK扩展文件,无法读取.wav文件
EN

Stack Overflow用户
提问于 2017-05-12 14:15:08
回答 3查看 173关注 0票数 0

我一直在开发一个应用程序,需要播放的声音和有.wav格式的声音文件的大集合,吹嘘约1 1GB大小。我遵循了制作扩展文件的官方文档。

首先,我做了一个0压缩的.zip文件,所有的.wav文件都在这个文件下(没有任何子文件夹。包中包含了所有的声音文件).Then我将.zip文件夹重命名为.obb。之后,我将.obb文件放在共享存储obb文件夹下的应用程序文件夹中(com.moinul.app是我的包名,所以文件夹名就是它,扩展文件也被命名为main.1.com.moinul.app.obb )

问题是,当我试图从我的扩展文件中读取文件时,我得到了空指针异常:

代码语言:javascript
复制
try
    {
        String param = (String) v.getTag();

        ZipResourceFile expansionFile = APKExpansionSupport.getAPKExpansionZipFile(context, 1, 0);
        AssetFileDescriptor fd = expansionFile.getAssetFileDescriptor("p25_1.wav");

        MediaPlayer mPlayer = new MediaPlayer();
        mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mPlayer.setDataSource(fd.getFileDescriptor());
        mPlayer.prepare();
        mPlayer.start();
    }
    catch (Exception e)
    {
        Log.w(TAG,  e.getMessage() + "");
        e.printStackTrace();
    }

我得到的异常告诉我fd为null。任何帮助都将不胜感激。谢谢

EN

Stack Overflow用户

发布于 2017-05-12 15:07:38

好了,它终于起作用了。更改为后:

代码语言:javascript
复制
 AssetFileDescriptor fd = expansionFile.getAssetFileDescriptor("Sounds/p25_1.wav");

它现在起作用了。奇怪的是,我不得不添加声音,这是压缩之前的文件夹名称(实际上我压缩了这个文件夹,所有的.wav都在它下面)。我想压缩器在.zip里做了另一个子文件夹。

不管怎样,谢谢你的帮助。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43930537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档