1

所以我已经学习了一段时间的 Android 开发,我正在编写一个节拍器应用程序,带有敲击速度。我正在做的是保留一个播放按钮,当你按下它时它会启动节拍器。在按钮的 onClick() 中,我使用了一个 ScheduledExecutorService 来重复 Runnable,它有一个带有节拍器点击的 SoundPool。

事情就是这样。节拍器的前两个滴答声之间的延迟明显小于应有的延迟;然后它会平息。因此,如果我希望它以 120 bpm 的速度敲击,它会在前两个滴答声中加速到 150 bpm,然后恢复正常。由于某种原因,我只能假设最初的滴答声已被延迟。

我尝试使用 MediaPlayer 而不是 SoundPool、TimerTask、单独的 Handlers 和 Runnables 而不是 ScheduledExecutorService,但没有运气。问题可能是什么?

4

0 回答 0