带有圆形 ProgressBar 的媒体播放器
Media player with circular ProgressBar
我想将我的媒体播放器连接到进度条这是我的代码:
var media55 :MediaPlayer
var progressBar55 :ProgressBar
progressBar55=findViewById(R.id.progressBar)
media55 = MediaPlayer()
media55.setDataSource("SONG URL HERE")
media55.prepare()
我想要当我启动媒体播放器时进度条随媒体播放器一起进步
在 class 范围内定义处理程序。
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()
开始更新 porgress,完成后通过调用 handler.removeCallbacksAndMessages(null)
删除处理程序回调
希望对您有所帮助
Using Handler
private lateinit var mHandler: Handler
private lateinit var mRunnable:Runnable
Just Create Function For This
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
)
}
Call This Function In Your Code
progressBar55=findViewById(R.id.progressBar)
media55 = MediaPlayer()
media55.setDataSource("SONG URL HERE")
media55.prepare()
progressBar55.max=media55.duration
mHandler = Handler()
startedSong()
我想将我的媒体播放器连接到进度条这是我的代码:
var media55 :MediaPlayer
var progressBar55 :ProgressBar
progressBar55=findViewById(R.id.progressBar)
media55 = MediaPlayer()
media55.setDataSource("SONG URL HERE")
media55.prepare()
我想要当我启动媒体播放器时进度条随媒体播放器一起进步
在 class 范围内定义处理程序。
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()
开始更新 porgress,完成后通过调用 handler.removeCallbacksAndMessages(null)
希望对您有所帮助
Using Handler
private lateinit var mHandler: Handler
private lateinit var mRunnable:Runnable
Just Create Function For This
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
)
}
Call This Function In Your Code
progressBar55=findViewById(R.id.progressBar)
media55 = MediaPlayer()
media55.setDataSource("SONG URL HERE")
media55.prepare()
progressBar55.max=media55.duration
mHandler = Handler()
startedSong()