最佳答案
我有以下密码:
AssetFileDescriptor afd = getAssets().openFd("AudioFile.mp3");
player = new MediaPlayer();
player.setDataSource(afd.getFileDescriptor());
player.prepare();
player.start();
问题是,当我运行这段代码时,它开始以字母顺序播放资产目录中的所有音频文件,而不是只播放我请求的音频文件。我做错了什么?是否有更好的方法从资产目录播放音频文件?
后续问题:
在资产目录中保存音频文件和在 res/raw 目录中保存音频文件是否有区别?除此之外,如果他们在资产目录中,他们就得不到 ID。如果我将音频文件移动到 res/raw 文件夹,那么在重用 MediaPlayer
时就会出现问题,因为没有 setDataSource()
的 id 参数。我找不到一个处理这类问题的好指南。