0

そうしたいです:

  1. 乱数を生成する(十分に簡単)
  2. その乱数を取り、それをある種の動的パスに追加します
  3. メディアプレーヤーの作成で動的パスを使用します。

例えば

リソースフォルダ(raw)には1.mp32.mp33.mp3が含まれています

乱数は0から4の間の数を生成します

例:2

パスに乱数を挿入します

例:文字列?

String PATH = "R.raw." + RANDOM-NUMBER

MediaPlayer mp = MediaPlayer.create(context, PATH);

ただし、もちろんMediaPlayerは文字列ではなくURI変数を使用します。

myUri = Uri.parse("R.raw.2"); 

しかし、nullPointerExceptionを取得します

これは答えるのが非常に簡単で簡単で、私の知識は単に私を回避していると思います

どうもありがとう

4

2 に答える 2

4

あなたは資源でそれをすることはできません。これがあなたがそれについて行くだろうと私が見る方法です。

int randomInt = generateRandomInt(), id;
switch (randomInt) {
case 1:
    id = R.raw.1;
    break;
case 2:
    id = R.raw.2;
    break;
...
}
setDataFromResource(getResources(), myMediaPlayer, id);

AFAIK、R.rawからメディアプレーヤーのデータを設定するには、setDataFromResourceを使用する必要があります

于 2012-05-28T17:35:05.517 に答える
2

個人的に私はこのようにします:

    //initializing the sounds
    final MediaPlayer sound1 = MediaPlayer.create(this, R.raw.1);
    final MediaPlayer sound2 = MediaPlayer.create(this, R.raw.2);
    final MediaPlayer sound3 = MediaPlayer.create(this, R.raw.3);

    //generate random number
    Random randomGenerator = new Random();
    int randomInt = randomGenerator.nextInt(3) + 1;

    //picking the right sound to play
    switch (randomInt){
    case 1: sound1.start();
    break;
    case 2: sound2.start();
    break;
    case 3: sound3.start();
    break;
    }
于 2012-05-28T18:25:00.113 に答える