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