我尝试在回收器视图适配器中的同一按钮上播放和暂停音频文件。但是如果我按下我的"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()
}
}
}
这是我的点击列表器:
playbtn.setOnClickListener {
playmusic(postPosistion)
Toast.makeText(context, "You play ${postPosistion + 1}", Toast.LENGTH_SHORT).show()
}
每个View
对象都有一个叫做setTag
/getTag
的方法,用于存储有关视图状态的小信息。
在"播放"按钮的点击侦听器中,您可以使用自定义状态设置tag
,它可以是任何内容,整数,字符串,甚至是密封的类状态。之后,这只是简单的if-else逻辑,在你的if条件下,检查getTag as T(the type of object you previously-stored)
是否匹配播放状态,然后暂停其他播放。