Browse Source

修改节拍器计时器部分逻辑

Pq 1 year ago
parent
commit
b561251e91

+ 4 - 5
metronome/src/main/java/com/cooleshow/metronome/MetronomeActivity.java

@@ -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);