我想:
E.g。
资源文件夹(原始)包含 1.MP3 2.MP3 3.MP3
随机数生成0到4之间的数字
例如:2
将随机数插入路径
E.g。一个字符串?
String PATH = "R.raw." + RANDOM-NUMBER
MediaPlayer mp = MediaPlayer.create(context, PATH);
然而,当然MediaPlayer使用URI变量而不是字符串,我确实尝试了
myUri = Uri.parse("R.raw.2");
但获取nullPointerException
我想这很简单/直接回答,而我的知识只是躲避了我
非常感谢
答案 0 :(得分: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设置媒体播放器的数据
答案 1 :(得分: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;
}