Сообщите элемент 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, а затем я отправляю список

0 ответов

Другие вопросы по тегам