-1

我正在开发一个应用程序,对于特定的选定项目,应该分配特定的 .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()
}

这个函数被调用,它返回的字符串应该去媒体播放器。Cnt 比方说 10

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

1 回答 1

0

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

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()
}
于 2021-07-19T09:17:54.090 回答