Воспроизведение и приостановка звука на той же кнопке Kotlin - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь воспроизвести и приостановить воспроизведение аудиофайла на той же кнопке в моем адаптере 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()
        }

1 Ответ

0 голосов
/ 28 мая 2020

Каждый объект View имеет метод, называемый setTag / getTag, он используется для хранения небольшой информации о состоянии представления.

В прослушивателе нажатия кнопки «play» вы можете установить tag с вашим пользовательским состоянием, это может быть что угодно, целое число, строка или даже состояния запечатанного класса. После этого это просто if-else logi c, в вашем условии if проверьте, соответствует ли getTag as T(the type of object you previously-stored), состоянию воспроизведения, а затем приостановите еще воспроизведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...