Сообщите элемент UI recyclerview о воспроизведении звука
У меня есть приложение, что некоторые предметы являются аудиоклипами. Когда я нажимаю на одну из них, воспроизводится аудиоклип. Однако я хочу показать что-то вроде анимации, чтобы показать, какой элемент сейчас воспроизводится. Вот код.
private fun setUpAudioReceived(holder: ReceivedAudio, chatMessageItem: ChatMessageItem?) {
chatMessageItem?.let { messageItem ->
messageItem.firstName?.let {
holder.rcvAudName.text = "${messageItem.firstName} ${messageItem.lastName}"
}
holder.rcvAudTime.text =
getDateStringWithNoSeconds(messageItem.msgWithMsgq.message?.messageDate)
//Here is the click listener that informs the interface
// of the mainActivity to play the clip
holder.itemView.setOnClickListener {
itemRecyclerCallback.onRowClicked(holder.adapterPosition, messageItem, holder, true)
}
}
}
Адаптер ресайклера имеет функцию обратного вызова, которая воспроизводит аудиоклип.
override fun onRowClicked(pos: Int, messageItem: ChatMessageItem, view: RecyclerView.ViewHolder) {
when (messageItem.message.msgType) {
MSG_TYPE_FILE -> {
audioPlay(Uri.parse(message.localUri))
// Update the current Item......
}
}
}
Вот где я должен уведомить конкретный элемент, чтобы что-то сделать в его пользовательском интерфейсе.
К вашему сведению, я использую PagedListAdapter, который извлекает сообщения из базы данных Room через LiveData Observer, а затем я отправляю список