我有一个包含一系列声音文件的扩展文件。较长的是 .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 会播放它决定的任何随机文件。
我到底在这里想念什么?任何帮助将不胜感激。
谢谢。