1

我在这里重新发明轮子,但由于我是一名初学者程序员,我很好奇做到这一点的最佳方法......

作为 Android 应用程序的一部分,我正在开发一个非常简单的媒体播放器。它播放文件,我想要 am:s 计时器,所以用户可以看到他们在文件中的距离(例如“04:56”)。我可能错过了显而易见的事情,但是最好的方法是什么?

一种方法是生成一个休眠 1000 毫秒的新线程,然后调用 MediaPlayer.getCurrentPosition() 并更新 UI。然而,这似乎有点荒谬——我的线程不能保证每秒都回来,所以我将显示一个不准确的时间。必须有更好的方法来做到这一点?

教育我(或链接给我)。

4

2 回答 2

3

只需使用Handler#postDelayed()View#postDelayed()进行每秒一次的更新。这使您不必分叉一个线程,更不用说在它之后进行清理了。

是一个将特定技术用于您期望目的的项目:根据 MediaPlayer 进度更新时间计数器。

于 2009-11-04T18:04:46.613 回答
0

一种替代方法可能是在音乐开始时启动一个独立的计时器。通过每五秒左右调用一次 MediaPlayer.getCurrentPosition() 使其“同步”,以确保时间保持准确。

于 2009-11-04T17:58:13.117 回答