2

我的应用程序超过 50MB,因为我使用了很多 MP3 文件。我通常这样做...

uri = Uri.parse("android.resource://red.cricket.RecordAlbum/" + R.raw.track_001_64kb );

...但是如果我必须使用 APK 扩展文件,我假设上面的代码行必须更改。但是改成什么?任何帮助是极大的赞赏!

编辑 1)感谢您的回答泰德。我确实像这样创建了扩展文件:

red@ubuntu:~/android/workspace/Album/res/raw$ zip -n .mp3 main.1.com.redcricket.Album.obb *mp3

那我现在该怎么办?rm -f *mp3; cd ../..; ant clean ; ant debug 不知何故,我认为这行不通。我应该把main.1.com.redcricket.Album.obb文件放在哪里?

4

1 回答 1

1

这些步骤在文档中非常清楚地列出。概括地说,步骤是:

  1. 从 .apk 中删除 .mp3 文件并将它们放入扩展文件中。根据说明命名扩展文件。文件的格式可以是您想要的任何格式,但文档建议您使用未压缩的 ZIP 格式的音频文件。Android 包含APK 扩展 ZIP 库,可用于直接从 ZIP 文件加载 .mp3 文件,而无需解压缩。
  2. 重写应用程序以在该位置查找扩展文件

    Context ctx = getContext();  
    String loc = ctx.getExternalStorageDirectory()
             + "/Android/obb/" + ctx.getPackageName();
    
  3. 编写代码,以便如果文件不存在,您的应用程序将从 Google Play 下载它,使用文档中描述的应用程序许可服务。此步骤涉及相当多的编码和配置。

  4. 使用 APK 扩展 ZIP 库访问所需的 .mp3 文件。文档有通过调用MediaPlayer.setDataSource()从扩展文件加载 MP3 的示例,其中包含文件描述符、ZIP 文件的偏移量和文件长度。

另请参阅此线程以获取有关如何执行所有这些操作的更多详细信息。

于 2013-03-18T03:56:02.050 回答