From 0e1deed340ea9f06587d5292d8d9ccf6fb13f692 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Tue, 17 Aug 2021 10:32:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B=E6=BD=9C?= =?UTF-8?q?=E5=9C=A8=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/lxmusicmobile/lyric/Lyric.java | 4 ++-- .../java/com/lxmusicmobile/lyric/LyricPlayer.java | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/android/app/src/main/java/com/lxmusicmobile/lyric/Lyric.java b/android/app/src/main/java/com/lxmusicmobile/lyric/Lyric.java index 4c32af0b..eb9eafc8 100644 --- a/android/app/src/main/java/com/lxmusicmobile/lyric/Lyric.java +++ b/android/app/src/main/java/com/lxmusicmobile/lyric/Lyric.java @@ -89,7 +89,7 @@ public class Lyric extends LyricPlayer { private void setViewLyric(int lineNum) { lastLine = lineNum; if (lyricView == null) return; - if (lineNum > lines.size() - 1) return; + if (lineNum < 0 || lineNum > lines.size() - 1) return; HashMap line = (HashMap) lines.get(lineNum); if (line == null) { lyricView.setLyric("", ""); @@ -138,7 +138,7 @@ public class Lyric extends LyricPlayer { } @Override - public void onPlay(int lineNum, String text) { + public void onPlay(int lineNum) { setViewLyric(lineNum); // Log.d("Lyric", lineNum + " " + text + " " + (String) line.get("translation")); } diff --git a/android/app/src/main/java/com/lxmusicmobile/lyric/LyricPlayer.java b/android/app/src/main/java/com/lxmusicmobile/lyric/LyricPlayer.java index 42c20572..b008dd5e 100644 --- a/android/app/src/main/java/com/lxmusicmobile/lyric/LyricPlayer.java +++ b/android/app/src/main/java/com/lxmusicmobile/lyric/LyricPlayer.java @@ -185,7 +185,7 @@ public class LyricPlayer { int curLineNum = this.findCurLineNum(getCurrentTime()); if (this.curLineNum != curLineNum) { this.curLineNum = curLineNum; - this.onPlay(curLineNum, (String) ((HashMap) lines.get(curLineNum)).get("text")); + this.onPlay(curLineNum); } } @@ -210,7 +210,7 @@ public class LyricPlayer { } private void handleMaxLine() { - this.onPlay(this.curLineNum, (String) lines.get(curLineNum).get("text")); + this.onPlay(this.curLineNum); this.pause(); } @@ -219,17 +219,18 @@ public class LyricPlayer { // Log.d("Lyric", "refresh: " + curLineNum); curLineNum++; - if (curLineNum == maxLine) { + if (curLineNum >= maxLine) { handleMaxLine(); return; } HashMap curLine = lines.get(curLineNum); - HashMap nextLine = lines.get(curLineNum + 1); + int currentTime = getCurrentTime(); int driftTime = currentTime - (int) curLine.get("time"); // Log.d("Lyric", "driftTime: " + driftTime); if (driftTime >= 0 || curLineNum == 0) { + HashMap nextLine = lines.get(curLineNum + 1); delay = (int) nextLine.get("time") - (int) curLine.get("time") - driftTime; // Log.d("Lyric", "delay: " + delay + " driftTime: " + driftTime); if (delay > 0) { @@ -246,7 +247,7 @@ public class LyricPlayer { refresh(); }, delay); } - onPlay(curLineNum, (String) curLine.get("text")); + onPlay(curLineNum); return; } } @@ -262,7 +263,7 @@ public class LyricPlayer { init(); } - public void onPlay(int lineNum, String text) {} + public void onPlay(int lineNum) {} public void onSetLyric(List lines) {}