如何在Android Kotlin中将文件名参数传递给MediaPlayer?

我在res / raw目录中有一个名为“hello.wav”的声音文件。我尝试了以下代码,由于在res / raw目录中没有名为sndfil.wav的文件,因此它将不接受参数sndfil ...

    private var sndfil = "xxxxxxxxxx"

    fun playnow (sndfil: String) {
        mp = MediaPlayer.create(this, R.raw.sndfil)
        mp.start()
        return
    }

    playnow("hello")

如何将文件名作为参数传递给android MediaPlayer?

最佳答案

看一看getIdentifier方法,它返回给定资源名称的资源标识符。

fun playnow (sndfil: String) {
    val resourceIdentifier = resources.getIdentifier(sndfil, "raw", packageName)
    mp = MediaPlayer.create(this,resourceIdentifier)
    mp.start()
    return
}

playnow("hello")

08-19 01:03