私はres/raw
で見つかったサウンドファイルのすべてについてMediaPlayer
インスタンスを初期化したい:/res/raw内のすべてのメディアファイルを動的に取得する方法は?
/res/raw/test1.mp3
/res/raw/test2.mp3
/res/raw/testN.mp3
目的は、遅延なく、ボタンのクリックに異なるサンプルを再生することです。
List<MediaPlayer> player = new ArrayList<>();
//TODO how to loop properly?
for (Rawfile file : rawfiles) {
pl = MediaPlayer.create(getBaseContext(), R.raw.test1);
player.add(pl);
}
Lateron、例えばbutton2をクリックした場合:
player.get(1).start();
質問:どのように私は動的にアプリケーションの初期化中にR.raw.*
ファイルを得ることができますか?
アップデート:以下は非常に近いですが、2つの問題があります。
1)例えば一つだけのファイル「test.mp3は」私の/res/raw
フォルダに配置されている場合は、関数は3つのファイルを示しています。 2)どうすればこれらのファイルをメディアプレーヤーに読み込むことができますか?
public void listRaw(){
Field[] fields=R.raw.class.getFields();
for(int count=0; count < fields.length; count++){
Log.i("Raw Asset: ", fields[count].getName());
}
}
結果:
I/Raw Asset:: $change
I/Raw Asset:: serialVersionUID
I/Raw Asset:: test
check [android-how-do-can-i-get-a-all-files-in-a-folder](https://stackoverflow.com/questions/6539715/android-how-フォルダ内のすべてのファイルのリストを取得することができます) – ELITE
@ELITEこれは、上記のように3つのファイルを提供します。しかし、私は1つしか持っていません... – membersound