【发布时间】:2012-07-03 05:58:27
【问题描述】:
我有一个包含一系列声音文件的扩展文件。较长的是 .mp3 文件,而较短的音效是 .wav 文件。我将它们打包成一个没有压缩的 .zip 文件。我使用 Google 提供的 Zip 文件阅读器和下载器库。
我正在像这样打开声音文件:
MediaPlayer mPlayer;
...
AssetFileDescript asd = expansionFile.getAssFileDescriptor(fileName);
FileDescriptor soundFile = asd.getFileDescriptor();
mPlayer = new MediaPlayer();
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.setDataSource(soundFile);
mPlayer.prepare();
mPlayer.start();
奇怪的是它每次都播放相同的声音文件。它似乎是它首先找到的任何东西。 asd.getDeclaredLength() 和 asd.getLength() 的字节大小正是它应该的大小。这意味着文件描述符至少可以找到文件,但由于某种原因,MediaPlayer 会播放它决定的任何随机文件。
我到底错过了什么?任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
你能告诉我创建扩展文件的方法吗,我还需要上传mp3文件作为扩展文件并从中读取
-
我假设您已经阅读了这些指南。 developer.android.com/guide/google/play/expansion-files.html
-
除此之外,您可以使用 WinRar 或 WinZip 等程序。归档您需要的文件并适当地命名它们。 不要使用压缩。在 WinRar 的情况下,您会说“存档用于存储”,它将执行 0% 压缩。这对于声音文件很重要,因为它与数据有关。完成归档后,只需将文件扩展名“.zip”重命名为“.obb”。
标签: android android-mediaplayer android-resources apk-expansion-files