试图在Android Studio中播放音频文件

时间:2017-03-06 13:06:20

标签: android android-studio audio

我正在尝试根据用户选择播放音频文件... 如果用户从微调器中选择第二个值,那么文件将为02.mp3,如果选择为153,则文件将为153.mp3

问题的代码行是:

mediaPlayer.setDataSource(getApplicationContext(), Uri.parse("android.resource://" + getPackageName() + "/raw/" + dir));

dir =用户从微调器中选择字符串,例如:" 023.mp3"

mp3文件位于应用程序的原始文件夹中

代码行的结果是:android.resource://mypackagename/raw/023.mp3

但mp3文件没有播放......

错误的图片链接:https://ibb.co/eJS7dv请帮忙

提前谢谢

1 个答案:

答案 0 :(得分:0)

此方法应该有效:

void playSound(String dir){
String filename = "android.resource://" + this.getPackageName() + "/raw/" + dir;

mp = new MediaPlayer();
try { mp.setDataSource(this,Uri.parse(filename)); } catch (Exception e) {}
try { mp.prepare(); } catch (Exception e) {}
mp.start();
}

修改

你能检查一下你可以在电脑上播放mp3,检查文件是否没有损坏吗?或者使用方法getIdentifier()

进行测试
void playSound(String dir){
try { 
 MediaPlayer mp =MediaPlayer.create(getApplicationContext(), getResources().getIdentifier(dir,"raw",getPackageName()));
} catch (Exception e) {}
mp.start();
}

喜欢这篇文章:MediaPlayer.setDataSource(String) not working with local files