0

我想:

  1. 生成一个随机数(很简单)
  2. 取那个随机数并将其添加到某种动态路径中
  3. 在媒体播放器创建中使用动态路径。

例如

资源文件夹(原始)包含 1.mp3 2.mp3 3.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,您必须使用 setDataFromResource 从 R.raw 为您的媒体播放器设置数据

于 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 回答