我的应用程序中有一个滴答声,在我测试过的大多数设备上运行正常(Nexus 7,SGS4,SGS6),但在Nexus 5和Nexus 4上有随机口吃,好像循环延迟了几分之一秒。
有些用户也在Moto X上报道了它。
口吃是不规则的,有时它是每个循环,有时它会在口吃之前经过5-6个循环。
即使应用程序什么都不做,也会出现口吃,但这会导致应用程序的UI出现延迟。当滴答声打开时,计时器上的秒数是不规则的(在断续续续的时间内),但是当滴答声关闭时计时器正常。
我尝试过同时使用mp3和ogg声音文件。
KitKat没有发生这个问题。
Logcat没有报告任何与口吃同时发生的事情,但有时会报告:
I/AudioFlinger(188): BUFFER TIMEOUT: remove(4096) from active list on thread 0xb5a9c008
和
W/AudioTrack(188): releaseBuffer() track 0xb7130628 disabled
due to previous underrun, restarting
但每次有口吃时都不会发生这种情况,也许十分之一。
我如何播放声音:
mp = MediaPlayer.create(this, R.raw.ticking_sound_mp3);
mp.setLooping(true);
mp.start();