Медиаплеер с круговым ProgressBar - PullRequest
0 голосов
/ 31 августа 2018

Я хочу подключить свой медиаплеер к индикатору выполнения. Вот мой код:

var media55 :MediaPlayer
var progressBar55 :ProgressBar

        progressBar55=findViewById(R.id.progressBar)
        media55 = MediaPlayer()
        media55.setDataSource("SONG URL HERE")
        media55.prepare()

Я хочу, чтобы при запуске мультимедийного проигрывателя прогресс-бар отображался с мультимедийным проигрывателем

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Я надеюсь, что это Hepls You

Использование обработчика

private lateinit var mHandler: Handler
private lateinit var mRunnable:Runnable

Просто создайте функцию для этого

fun startedSong()
{
mRunnable = Runnable {
                // Do something here
    if(media55.isPlaying)
    {
       progressBar55.progress=media55.currentPosition
    }
}
                // Schedule the task to repeat after 1 second
                mHandler.postDelayed(
                        mRunnable, // Runnable
                        1000 // Delay in milliseconds
                )
}

Вызовите эту функцию в своем коде

    progressBar55=findViewById(R.id.progressBar)
    media55 = MediaPlayer()
    media55.setDataSource("SONG URL HERE")
    media55.prepare()
    progressBar55.max=media55.duration
    mHandler = Handler()
    startedSong()
0 голосов
/ 31 августа 2018

Определить обработчик в области видимости.

private val handler = Handler()

Затем установите максимальное значение ProgressBar на длительность источника данных MediaPlayer.

progressBar55.max = media55.duration

Наконец добавьте объект Runnable для установки прогресса на вашем ProgressBar каждые X миллисекунд.

val interval: Long = 1000
val statusChecker = object : Runnable {
    override fun run() {
        progressBar.progress = media.currentPosition
        handler.postDelayed(this, interval)
    }
}

Когда вы запускаете аудио, вы должны позвонить statusChecker.run(), чтобы начать обновление porgress, а когда вы закончите, удалите обратные вызовы обработчика, позвонив handler.removeCallbacksAndMessages(null)

...