Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带圆形进度条的媒体播放器_Java_Android_Kotlin_Kotlin Android Extensions_Kotlin Extension - Fatal编程技术网

Java 带圆形进度条的媒体播放器

Java 带圆形进度条的媒体播放器,java,android,kotlin,kotlin-android-extensions,kotlin-extension,Java,Android,Kotlin,Kotlin Android Extensions,Kotlin Extension,我想将我的媒体播放器连接到进度条这是我的代码: var media55 :MediaPlayer var progressBar55 :ProgressBar progressBar55=findViewById(R.id.progressBar) media55 = MediaPlayer() media55.setDataSource("SONG URL HERE") media55.prepare() 我想在启动media

我想将我的媒体播放器连接到进度条这是我的代码:

var media55 :MediaPlayer
var progressBar55 :ProgressBar

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

我想在启动media player时,进度条与media player一起前进

在类范围内定义处理程序

private val handler = Handler()
然后将ProgressBar最大值设置为MediaPlayer数据源的持续时间

progressBar55.max = media55.duration
最后,添加一个可运行对象,以每X毫秒在ProgressBar上设置一次进度

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)

删除处理程序回调,我希望它能帮助你

使用处理程序

只需为此创建函数

在代码中调用此函数

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()