我正在尝试播放存储在assets目录中的音频文件,但在我读取文件之前,我收到错误“错误发生java.io.FileNotFoundException:track.mp3”。这是我读它的方式:
AssetFileDescriptor afd = getAssets().openFd("track.mp3");
我在互联网上阅读了很多描述,但没有成功。
答案 0 :(得分:0)
右键点击“track.mp3”文件,“Refactor”> “移动”命令,将文件移动到另一个目录(例如“res”)。使用相同的命令,将其移回“assets”目录。对我来说,它有效。
答案 1 :(得分:0)
Android指南建议使用音频res/raw
文件夹。因此,请确保所有音频都在那里,当您阅读时,您可以使用此方法:
void playAudio(Context mContext, String sound){
new AudioPlayer().play(mContext, mContext.getResources().getIdentifier(
sound,"raw", mContext.getPackageName()));
}
如果您需要线路音频播放器,请查看MediaPlayer
答案 2 :(得分:0)
使用此代码
MediaPlayer mediaPlayer = new MediaPlayer();
AssetFileDescriptor afd;
try {
afd = getAssets().openFd("1.mp3");
mediaPlayer.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
Toast.makeText(LearnActivity.this, "Error Playing audio from Asset directory",Toast.LENGTH_SHORT).show();
}
否则,请检查文件是否在正确的文件夹中且名称为“track.mp3”。
答案 3 :(得分:-1)
我认为此代码适合您:
AssetFileDescriptor afd = getAssets().openFd("track.mp3");
MediaPlayer player = new MediaPlayer();
player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
player.prepare();
player.start();
否则,检查文件是否在正确的文件夹中,名称是“track.mp3”。