🐞 fix: 修复任务栏歌词的歌词意外跳转 bug by apoint123 · Pull Request #857 · imsyy/SPlayer

Summary of Changes

此拉取请求旨在解决任务栏歌词显示中一个令人困扰的意外跳转错误。通过引入一个时间同步阈值,并优化 IPC 消息处理逻辑,确保歌词仅在必要时才进行时间同步,从而显著提升了歌词显示的稳定性和用户体验,避免了因细微时间偏差导致的歌词回溯问题。

Highlights

  • 修复任务栏歌词意外跳转问题: 解决了任务栏歌词在播放过程中可能出现的意外跳转问题,该问题是由于 IPC 时间与本地时间之间的微小延迟导致的。
  • 引入时间同步阈值: 引入了一个名为 "SYNC_THRESHOLD_MS" 的新常量,其值为 100 毫秒,用于定义 IPC 时间与本地时间之间的最大可接受误差。
  • 优化 IPC 时间同步逻辑: 修改了 "taskbar:update-progress" IPC 处理器,使其仅在 IPC 报告的 "currentTime" 与当前 "state.currentTime" 之间的绝对差值超过 "SYNC_THRESHOLD_MS" 时才更新歌词时间,从而避免因微小时间差异导致的歌词频繁回跳。
Changelog
  • src/views/TaskbarLyric/index.vue
    • 新增了一个名为 "SYNC_THRESHOLD_MS" 的常量,并附带详细注释,解释了其作用是定义 IPC 时间与本地时间同步的误差阈值(100ms)。
    • 修改了 "taskbar:update-progress" IPC 事件的处理逻辑。现在,它会计算 IPC 传来的 "currentTime" 与组件内部 "state.currentTime" 之间的绝对差值。
    • 如果这个差值小于或等于 "SYNC_THRESHOLD_MS" 且播放器处于播放状态("state.isPlaying" 为 true),则会跳过 "currentTime" 的更新,以防止歌词因微小的时间差异而频繁跳转。
Activity
  • gemini-code-assist[bot] 报告了创建摘要时遇到的错误。
  • apoint123 再次请求生成摘要。