随机资源选择

时间:2019-07-04 15:10:22

标签: java android android-studio android-resources

当用户按下按钮时,我想选择某些音频文件,但是我似乎找不到改变R.raw的方法。这样它就会在这里改变。

我知道应该比创建1000更容易的解决方案,否则 R.raw.0,R.raw.1,...

所以在我的示例中,我选择了文件“ c.mp3” 但这最终必须更改为000到499。 因此,随机(或选择性)说050 =>这个应该变成R.raw.050

}

@Override
public void play() {

    final MediaPlayer mp = MediaPlayer.create(context, R.raw.c);
    mp.start();

}

2 个答案:

答案 0 :(得分:1)

您可以尝试使用:

context.getResources().getIdentifier("050", "raw", this.getPackageName());

,并使用随机对象实例将名称(“ 050”)随机化。

答案 1 :(得分:1)

假设您有这样的随机数:

String rand = "050";

您只需找到原始资源ID并将其传递给MediaPlayer.create方法,就像这样:

int rawResourceId = context.getResources().getIdentifier(rand, "raw", this.getPackageName());

final MediaPlayer mp = MediaPlayer.create(context, rawResourceId);
mp.start();

建议:

  • 最好使用前缀f_000,f_001,....,f_050之类的字母重命名资源文件。