gpt4 book ai didi

java - Android MediaPlayer 声音延迟

转载 作者:行者123 更新时间:2023-11-30 01:11:53 31 4
gpt4 key购买 nike

所以我在使用 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);
}
};`

最佳答案

问题似乎出在您为 timerHandler.postDelay() 方法提供的延迟值。

你给了 1 毫秒,导致你的 Runnable 和声音启动得太快。

改为尝试 500 毫秒。

关于java - Android MediaPlayer 声音延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38341767/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com