Koltin,从变量设置媒体播放器

Koltin, setting a mediaplayer from a variable

我正在开发一个应用程序,其中应为特定选择的项目分配特定的 .mp3。 (就像我选择 Dachshund,然后我 dachshund_1.mp3,dachshund_2.mp3 等在我的函数这样说时播放)。是否有可能以某种方式创建一个包含特定名称的变量,然后将其分配给 mediaplayer.create?

我想做的事情如下所示:

// I have a function here that returns with the specific string
// I have a cnt variable in the code which helps determine which text and sound comes now
fun DogHandler(cnt:Int, receiptName: String) :String
{
   return dogName + "_" +cnt.toString()
}

This function is called, and the string it returns should go to the mediaplayer. Cnt is let's say 10

var tmp = DogHandler(dachshund, cnt);     // tmp = dachsund_10
mediaPlayer = MediaPlayer.create(context, R.raw.tmp)
mediaPlayer.start()

据我所知,无法动态生成资源 ID(如 R.raw.something)。但是,您可以简单地创建它们的列表并通过索引访问它。

val dachsunds = listOf(
    R.raw.dachsund_0,
    R.raw.dachsund_1,
    R.raw.dachsund_2,
    R.raw.dachsund_3,
    // ...
    R.raw.dachsund_10
)

val dachsund = dachsunds[dachsundIndex]
val mediaPlayer = MediaPlayer.create(context, dachsund).apply {
    start()
}