Android:按文件名播放/ res / raw中的音频文件

JDS*_*JDS 2 java audio android file

在我的应用程序的/ res / raw /文件夹中,我有: file1.ogg file2.ogg ... fileN.ogg

在本地数据库中,我具有对文件名的引用,即file1 file2 ... fileN

给定其中一个字符串,例如fileM,我如何播放其中包含的音频fileM.ogg?在此处寻找相关的Java代码。

这是我到目前为止所看到的:

String name = "plumber";
String link = "/res/raw/" + name + ".ogg";

try {
    mp.setDataSource(link); //earlier: mp = new MediaPlayer();
    mp.prepare();
    mp.start();
} catch (Exception e) {
    Toast.makeText(PlayScreen.this, "ERROR: audio player not working.", Toast.LENGTH_LONG).show(); 
}
Run Code Online (Sandbox Code Playgroud)

我在烤面包中收到错误消息。我也尝试了link不带“ / res / raw” 的字符串。

谢谢。

小智 5

MediaPlayer player = new MediaPlayer();
String path = "android.resource://"+packagename+"/raw"+filename;
try {
     player.setDataSource(context, Uri.parse(path));
     player.prepare();
     player.start();
} catch (IOException e) {
     e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

尝试是否使用扩展名“ .mp3”

希望我能帮助你

我认为应该像http://en.kuma-de.com/blog/2011-11-14/341上的示例那样