随机资源选择

Random resource selection

我想在用户按下按钮时 select 某些音频文件,但我似乎找不到如何更改 R.raw。这样它就会在这里发生变化。

我知道应该有比创建 1000 if else 更简单的解决方案 R.raw.0, R.raw.1 ,...

所以在我的示例中,我有 selected 文件 "c.mp3" 但这必须最终更改为 000 到 499。 所以随机(或 selective)说 050 => 这应该变成 R.raw.050

}

@Override
public void play() {

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

}

您可以尝试使用:

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

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

假设您有这样的随机数:

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.
  • 这样的字母前缀来重命名它们