我尝试在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()
}
最佳答案
每个View
对象都有一个称为setTag
/ getTag
的方法,该方法用于存储有关 View 状态的小信息。
在“播放”按钮的单击侦听器中,可以使用自定义状态设置tag
,它可以是任何东西,整数,字符串甚至是密封的类状态。之后,这只是简单的if-else逻辑,在您的if条件下,检查getTag as T(the type of object you previously-stored)
是否匹配播放状态,然后暂停else播放。
关于android - 在同一按钮Kotlin上播放和暂停音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62064517/