3

私のアプリケーションの /res/raw/ フォルダーには、次のものがあります。file1.ogg file2.ogg ... fileN.ogg

ローカルデータベースには、ファイル名への参照がありますfile1 file2 ... fileN

これらの文字列の 1 つが与えられた場合、たとえば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(); 
}

トーストにエラー メッセージが表示されます。linkまた、 「/res/raw」を含まない文字列を試しました。

ありがとうございました。

4

1 に答える 1

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

拡張子「.mp3」の有無にかかわらず試してみてください

お役に立てれば幸いです

于 2013-01-06T19:18:51.570 に答える