1

我们已经打破了 Google 的 APK 大小限制,并计划通过扩展包发送我们下载的声音文件。“assets”文件夹中有两个目录用于保存我们的 oggsm,Music 和 Sounds

第一部分进行得很顺利,设法将包含这两个目录和大约 200 个文件的压缩文件推送到 obb 文件夹中,并且可以打开 zip 并访问其中的文件。

问题是我把它们放在哪里?

我一直在尝试获取我们的 apk 数据最初解包的根目录,并将声音放回它们之前所在的位置。

这是正确的还是我们应该使用 getexternalfilesdir() 并将我的两个文件夹放在那里并使用新位置来播放声音?

感谢您的任何回复。

4

1 回答 1

4

请不要解压缩您的 APK 扩展文件。通过使用 zip -0 添加它们,以将它们存储在 APK 文件(未压缩)中的方式存储您的资产。然后,您可以直接从 APK 扩展文件中流式传输它们。如果您解压缩 APK 扩展文件,您需要将文件存储两次,因为如果您更新您的应用程序,Google Play 将再次下载 APK 扩展文件。

Android 中的所有音频和视频 API 都将采用 FileDescriptor、偏移量和长度。

例子:

http://developer.android.com/reference/android/media/MediaPlayer.html#setDataSource(java.io.FileDescriptor , long, long)

事实证明,APK 扩展文件包附带的示例代码在 ZipResourceFile 中有一个函数,该函数返回一个 AssetFileDescriptor。

AssetFileDescriptor 对象返回偏移量和长度,以及原始文件描述符。

于 2012-05-08T22:58:56.133 回答