在同一按钮Kotlin上播放和暂停音频

时间:2020-05-28 12:18:03

标签: android kotlin audio

我尝试在recyclerView适配器的同一按钮上播放和暂停音频文件。但是,如果我按“ playbtn”,它只会播放而不是暂停。

这是我的职能:

fun playmusic(position: Int) {

    val post = posts[position]
    mp  = MediaPlayer()
    mp.setDataSource(post.audioUrl)
    mp.prepareAsync()
    mp.setOnPreparedListener { player ->
        if (player.isPlaying)
            player.pause()
        else{
            player.start()
        }
    }
}

这是我的clickListner:

    playbtn.setOnClickListener {
            playmusic(postPosistion)
            Toast.makeText(context, "You play ${postPosistion + 1}", Toast.LENGTH_SHORT).show()
        }

1 个答案:

答案 0 :(得分:0)

每个View对象都有一个称为setTag / getTag的方法,该方法用于存储有关视图状态的小信息。

在“播放”按钮的单击侦听器中,可以将tag设置为自定义状态,它可以是任何东西,整数,字符串甚至是密封的类状态。之后,这只是简单的if-else逻辑,在您的if条件下,检查getTag as T(the type of object you previously-stored)是否符合播放状态,然后暂停其他播放。