我想将媒体播放器连接到进度条,这是我的代码:
var media55 :MediaPlayer
var progressBar55 :ProgressBar
progressBar55=findViewById(R.id.progressBar)
media55 = MediaPlayer()
media55.setDataSource("SONG URL HERE")
media55.prepare()
我想当我启动媒体播放器时,进度栏随媒体播放器一起前进
答案 0 :(得分:0)
在类范围内定义处理程序。
private val handler = Handler()
然后将ProgressBar最大值设置为MediaPlayer数据源的持续时间。
progressBar55.max = media55.duration
最后添加一个Runnable对象,以每X毫秒在ProgressBar上设置进度。
val interval: Long = 1000
val statusChecker = object : Runnable {
override fun run() {
progressBar.progress = media.currentPosition
handler.postDelayed(this, interval)
}
}
在运行音频时,您应该调用statusChecker.run()
以开始更新密码,并在完成后通过调用handler.removeCallbacksAndMessages(null)
删除处理程序回调
答案 1 :(得分:0)
我希望它会帮助您
使用处理程序
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()