检查清单
当前系统环境
Arch Linux
当前 Node.js 及 npm 版本
No response
当前版本
651e945
具体信息
无法稳定复现
- 确保「歌词渲染引擎」为 AMLL
- 任意播放歌曲(不要打开歌词界面)
- 暂停歌曲
- 打开歌词界面
- 鼠标放在歌词组件上,滚动鼠标或触控板,观察到无法滚动(无法滚动出一定距离,就像弹簧一样,只能滚动出附近一两行)
- 播放后恢复正常,即使再暂停也正常(关闭歌词界面后,保持暂停状态,再次打开歌曲界面,可以复现)
这不是 AMLL 的问题,而是本项目使用 AMLL 的方式有问题。因为我在 SPlayer 和 AMLL Player 上都从未出现过此问题
我让 copilot 修了一下。情况貌似有所好转。但因为它无法稳定复现,我也不能确保它解决了问题,而且我看不懂这个 AMLL 组件是如何工作的,所以我没直接开 pr
patch
From 71fb495eaa2d87f600f4ab6377b4759a306daf78 Mon Sep 17 00:00:00 2001
From: MoYingJi <moyingjiaw@outlook.com>
Date: Wed, 1 Jul 2026 02:46:57 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20AMLL=20=E6=9A=82?=
=?UTF-8?q?=E5=81=9C=E6=97=B6=E6=89=93=E5=BC=80=E6=97=A0=E6=B3=95=E6=BB=9A?=
=?UTF-8?q?=E5=8A=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/player/Lyrics/AMLLLyrics.vue | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/components/player/Lyrics/AMLLLyrics.vue b/src/components/player/Lyrics/AMLLLyrics.vue
index 39c6dca..99f7165 100644
--- a/src/components/player/Lyrics/AMLLLyrics.vue
+++ b/src/components/player/Lyrics/AMLLLyrics.vue
@@ -52,6 +52,7 @@ const settings = useSettingsStore();
const wrapperRef = ref<HTMLDivElement | null>(null);
const playerRef = ref<CoreLyricPlayer>();
const bottomLineEl = ref<HTMLElement>();
+const clockInitialized = ref(false);
// 是否被父组件冻结
const isFrozen = ref(false);
@@ -134,8 +135,8 @@ onMounted(() => {
playerRef.value.addEventListener("line-click", handleLineClick);
// 应用初始状态
- if (props.initialTime > 0) {
- playerRef.value.setCurrentTime(props.initialTime);
+ if (Number.isFinite(props.initialTime) && props.initialTime >= 0) {
+ playerRef.value.setCurrentTime(props.initialTime, true);
}
if (processedLyrics.value.length > 0) {
playerRef.value.setLyricLines(processedLyrics.value);
@@ -159,6 +160,13 @@ onUnmounted(() => {
watchEffect(() => {
const player = playerRef.value;
if (!player) return;
+
+ // AMLL 在初始 paused 挂载时需先启动一次内部时钟,之后手动滚动才可正常生效
+ if (!clockInitialized.value) {
+ player.resume();
+ clockInitialized.value = true;
+ }
+
if (!isFrozen.value && !document.hidden) {
if (props.playing) {
player.resume();
--
2.54.0
检查清单
当前系统环境
Arch Linux
当前 Node.js 及 npm 版本
No response
当前版本
651e945
具体信息
无法稳定复现
这不是 AMLL 的问题,而是本项目使用 AMLL 的方式有问题。因为我在 SPlayer 和 AMLL Player 上都从未出现过此问题
我让 copilot 修了一下。情况貌似有所好转。但因为它无法稳定复现,我也不能确保它解决了问题,而且我看不懂这个 AMLL 组件是如何工作的,所以我没直接开 pr
patch