如何 "android media player" (Kotlin)

How to "android media player" (Kotlin)

情况是这样的——我已经开始研究 kotlin 和 android studio,但现在我被这个问题困住了。 我有一个按钮 (ImageView),当按下它时开始播放音频文件。

class MainActivity : AppCompatActivity() {
    private var mp: MediaPlayer? = null
    private var bruhSound: MutableList<Int> = mutableListOf(R.raw.bruh)

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        supportActionBar?.hide()

        bruhBtn.setOnClickListener {
            if (mp == null) {
                controlSound(bruhSound[0])
                bruhBtn.setImageResource(R.drawable.btnpressed)
            } else if (mp !== null) {
                bruhBtn.setImageResource(R.drawable.btn)
            }
        }
    }

    private fun controlSound(id: Int) {
        if (mp == null) {
            mp = MediaPlayer.create(this, id)
            Log.d("MainActivity", "ID: ${mp!!.audioSessionId}")
        }
        mp?.start()
        Log.d("MainActivity", "Duration: ${mp!!.duration / 1000} seconds")
    }

目前,当我按下“bruhBtn”时,图片正确地变为“btnpressed”并再次变回,但在音频结束后它不会改变。我希望它在音频整理时重置。我意识到问题出在我的代码上,我需要在音频结束后更改图像。我该怎么做?

在你的行之前

mp?.start

添加监听器

    mp?.setOnCompletionListener { //change your button state here }