【发布时间】:2017-01-06 18:48:47
【问题描述】:
所以我正在使用 Android MediaPlayer,我似乎遇到了一个非常奇怪的问题。我正在让 MediaPlayer 以递减的间隔播放声音。因此,随着时间的推移,每个声音之间的时间量正在减少。有问题的声音长 0.05 秒,声音之间的最短延迟为 0.5 秒。我让 logcat 显示有关延迟多长时间的消息,并且在播放每个刻度时它还会显示一条消息。但是,根据 logcat,当每个刻度应该播放时,它会随机跳过一个刻度。在其他时候,它还会在一片混乱中播放一堆滴答声。我不太确定是什么原因造成的,不胜感激。代码如下,如果需要,我可以发布 logcat。
private Runnable timerRunnable = new Runnable() {
@Override
public void run() {
long millis = System.currentTimeMillis() - startTime;
int trueSeconds = (int) millis / 1000;
double seconds = (double) (millis / 1000);
int minutes = trueSeconds / 60;
Log.d("Tick Timing", "Delay: " + delay);
if(lastRun == 0)
lastRun = System.currentTimeMillis();
if((System.currentTimeMillis() - startTime) >50000)
delay = 500;
else if(System.currentTimeMillis() - lastRun > delay){
lastRun = System.currentTimeMillis();
delay /= 1.075;
if(phaseOne) {
Log.d("Tick Timing", "Tick One Played");
tickOne.start();
phaseOne = false;
}
else {
Log.d("Tick Timing", "Tick Two Played");
tickTwo.start();
phaseOne = true;
}
}
timerTextView.setText(minutes + ":" + seconds);
timerHandler.postDelayed(this, 1);
}
};`
【问题讨论】:
标签: java android audio android-mediaplayer