|
@@ -50,15 +50,15 @@ public class MetronomeActivity extends BaseActivity<ActivityMetronomeLayoutBindi
|
|
|
public void run() {
|
|
|
long delayMillis = (long) (1 / (currentBeatRate / 60d) * 1000 * currentNoteRate);
|
|
|
long next = MetronomeConfig.MIN_COUNT_TIME_SPACE;
|
|
|
+ long l = System.currentTimeMillis();
|
|
|
if (totalTime == -1) {
|
|
|
- handleMusic(delayMillis);
|
|
|
+ handleMusic(delayMillis,l);
|
|
|
} else {
|
|
|
- long l = System.currentTimeMillis();
|
|
|
if (Math.abs(l - totalTime)-delayMillis < next) {
|
|
|
next =Math.abs(l - totalTime)-delayMillis;
|
|
|
}
|
|
|
if (Math.abs(l -totalTime) >= delayMillis) {
|
|
|
- handleMusic(delayMillis);
|
|
|
+ handleMusic(delayMillis,l);
|
|
|
}
|
|
|
}
|
|
|
mHandler.postDelayed(mRunnable, next);
|
|
@@ -101,9 +101,8 @@ public class MetronomeActivity extends BaseActivity<ActivityMetronomeLayoutBindi
|
|
|
return ActivityMetronomeLayoutBinding.inflate(getLayoutInflater());
|
|
|
}
|
|
|
|
|
|
- private void handleMusic(long delayMillis) {
|
|
|
+ private void handleMusic(long delayMillis,long cTime) {
|
|
|
boolean tickOrTock = isTickOrTock();
|
|
|
- long cTime = System.currentTimeMillis();
|
|
|
if (lastTime != -1) {
|
|
|
long diff = cTime - lastTime;
|
|
|
LOG.i("diff:" + diff);
|