如何从 res>raw 播放不同的声音文件

How to play a different sound file from res>raw

在class下我有

private lateinit var mp: MediaPlayer

在覆盖下我有

mp = MediaPlayer.create(this, R.raw.a1)

函数 buttonPlayClick 也是 buttonPlay

fun buttonPlayClick(v: View)
{
    if (mp.isPlaying)
    {
        mp.pause()
        buttonPlay.text = "PLAY"

} else {
    mp.start()
        buttonPlay.text = "PAUSE"
    }
}

我正在使用下面的代码指向一个声音文件

mp = MediaPlayer.create(this, R.raw.a1)

当前,命令指向 res>raw

中名为 a1 的声音文件

我正在一点一点地学习 Kotlin,我正在尝试使用下面的命令播放不同的声音文件(将 a1 更改为 x)

mp = MediaPlayer.create(this, R.raw.x)

我希望在应用程序中的某个时候我可以定义 x = a1a2a3 来播放不同的声音文件,但它不能那样工作。我还注意到声音文件不能只是一个整数值。声音文件很短(3 到 10 秒)

感谢大家的帮助!

你可以这样做:

var a1 = R.raw.a1
var a2 = R.raw.a2
var a3 = R.raw.a3

或者您可以像这样使用 JAVA 来完成:

int setMusic(String mMusic){
  return this.getResources().getIdentifier(mMusic, "raw", this.getPackageName());
}

并这样称呼它:

mp = MediaPlayer.create(this, setMusic("a1"))

mp = MediaPlayer.create(this, setMusic("a2"))