Android中稳定,准确的计时(Steady, accurate timing in Androi

2019-09-18 01:34发布

我试图创建Android设备的音乐应用序并希望得到一些建议,以如何实现坚如磐石的计时功能。

如果我通过一个Runnable到Handler.postDelayed并指定x毫秒的延迟时间,是该Runnable保证在精确的x毫秒的时间执行?

如果我不能达到与处理器稳定且准确的时刻,还有什么其他的选择是开放给我吗?

先感谢您

Answer 1:

我不认为“硬实时”编程是可能的。 选项似乎是寻找在事情发生之后发出信号的事件。 这可以通过创建自己的标志,并轮询该标志在其他线程中的值来完成。

您可以使用CountDownTimer指定一个特定的时间长度必须在米利斯通过。

您可以使用系统时钟和多少时间已经过去了使自己的计时器,通过轮询。

还有一个名为FileObserver一个有用的类,它可以让你观看一个特定的文件,并听取像打开,关闭的事件。 使用这些信号就可以知道现在是时候移动到下一个操作。

最糟糕的错误是,存在着发生在一个特定的硬件,但在大多数情况不会发生了计时问题。 这个问题如果我没有自己所有的人,并寻找时机的问题是很难的。 我希望其他人将有一个更好的 - 或更多 - 这个问题的答案。



Answer 2:

很多谷歌搜索后,我设法在这里找到答案:

http://masterex.github.com/archive/2012/05/28/android-audio-synthesis.html

处理程序,Thread.sleep()方法和计时器不走它看起来是那样的。

谢谢DRA的回答,因为认识 - 对不起,不承认越快,我已经离开了一会儿。



文章来源: Steady, accurate timing in Android