#android #android-recyclerview #android-mediaplayer
Вопрос:
Я разрабатываю приложение для чата, в котором я сталкиваюсь с проблемами при работе с медиаплеером в режиме переработчика. Потоковая передача воспроизведения и паузы отлично работает, когда есть только один элемент, но если есть несколько аудиофайлов, расположенных один под другим, если один из них находится в состоянии воспроизведения, и если пользователь нажимает другой элемент, предыдущий элемент переходит в состояние паузы, но когда я снова нажимаю на воспроизведение, верхний элемент, нижние воспроизводятся, а не текущий выбранный, и панель поиска обновляется.
Вот мой код, может ли кто-нибудь помочь мне с этим, спасибо
iv_play2.setOnClickListener {
if (MediaPlayerUtils.isPlaying) {
isPlayingAudio = true
MediaPlayerUtils.pauseMediaPlayer()
iv_play2.setImageResource(R.drawable.ic_playicon)
} else {
if (isPlayingAudio) {
MediaPlayerUtils.playMediaPlayer()
iv_play2.setImageResource(R.drawable.ic_pause)
} else {
iv_play2.setImageResource(R.drawable.ic_pause)
try {
MediaPlayerUtils.startAndPlayMediaPlayer(
URL, seekbar,
object : MediaPlayerUtils.Listener {
override fun onAudioComplete() {
isPlayingAudio = false
MediaPlayerUtils.releaseMediaPlayer()
iv_play2.setImageResource(R.drawable.ic_playicon)
}
override fun onAudioUpdate(currentPosition: Int) {
seekbar.progress = currentPosition
}
})
}catch (e:Exception){
e.printStackTrace()
}
}
}
seekbar.setOnSeekBarChangeListener(object :
SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(
seekBar: SeekBar?,
progress: Int,
fromUser: Boolean
) {
if (fromUser) {
MediaPlayerUtils.applySeekBarValue(progress)
}
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {
}
override fun onStopTrackingTouch(seekBar: SeekBar?) {
}
})
}