Skip to content

蓝牙歌词增加显示翻译或罗马音功能#980

Open
zkrong1 wants to merge 3 commits into
lyswhut:devfrom
zkrong1:dev
Open

蓝牙歌词增加显示翻译或罗马音功能#980
zkrong1 wants to merge 3 commits into
lyswhut:devfrom
zkrong1:dev

Conversation

@zkrong1
Copy link
Copy Markdown

@zkrong1 zkrong1 commented Feb 26, 2026

针对 #979

设置里勾选“显示蓝牙歌词”选项后,会增加“蓝牙歌词显示翻译(如果可用)”、“蓝牙歌词显示罗马音(如果可用)”两个选项

  1. 只勾选"蓝牙歌词显示翻译" → 蓝牙推送翻译
  2. 只勾选"蓝牙歌词显示罗马音" → 蓝牙推送罗马音
  3. 同时勾选 → 蓝牙推送罗马音(优先级更高)
  4. 都不勾选 → 蓝牙推送原文

App 内的显示歌词翻译/罗马音设置不影响蓝牙推送

Comment thread src/lang/en-us.json Outdated
Co-authored-by: 3gf8jv4dv <3gf8jv4dv@gmail.com>
@lyswhut
Copy link
Copy Markdown
Owner

lyswhut commented Feb 28, 2026

我看了这个,勾选蓝牙的罗马音或者翻译后原始歌词就会被覆盖?而且从实现看起来蓝牙歌词的 原文、罗马音、翻译 应该是互斥的吧?

这样实现是有问题的,extendedLyrics 内的歌词并不固定第一个就是翻译:

if (targetLine != null) ((ArrayList<String>) targetLine.get("extendedLyrics")).add(text);

在解析扩展歌词时,如果时间标签相同就放进去,所以意味着如果某个时间标签的翻译某行没有时,但罗马音有,就会出现第一个为罗马音的情况,我看了原来的实现,勾选翻译或者罗马音时就会重新设置并解析歌词,依赖的是是否将某种扩展歌词设置进去解析

@zkrong1
Copy link
Copy Markdown
Author

zkrong1 commented Feb 28, 2026

我看了这个,勾选蓝牙的罗马音或者翻译后原始歌词就会被覆盖?而且从实现看起来蓝牙歌词的 原文、罗马音、翻译 应该是互斥的吧?

这样实现是有问题的,extendedLyrics 内的歌词并不固定第一个就是翻译:

if (targetLine != null) ((ArrayList<String>) targetLine.get("extendedLyrics")).add(text);

在解析扩展歌词时,如果时间标签相同就放进去,所以意味着如果某个时间标签的翻译某行没有时,但罗马音有,就会出现第一个为罗马音的情况,我看了原来的实现,勾选翻译或者罗马音时就会重新设置并解析歌词,依赖的是是否将某种扩展歌词设置进去解析

蓝牙歌词一次只能推一行,所以是互斥的,只能选择显示一种;extendedLyrics的问题感谢指出;我还发现这一版还存在另外一个问题,会导致桌面歌词一直显示原文+罗马音+翻译,我过几天再改动一版

@zkrong1 zkrong1 marked this pull request as draft March 5, 2026 14:14
@zkrong1 zkrong1 marked this pull request as ready for review March 10, 2026 13:23
@zkrong1
Copy link
Copy Markdown
Author

zkrong1 commented Mar 10, 2026

@lyswhut 麻烦看下最新这个改动是否还有问题,谢谢

  1. 扩展歌词类型区分:通过前缀 translation: 和 roma: 标记
  2. 桌面歌词独立:根据 isShowTranslation/isShowRoma 过滤
  3. 蓝牙歌词独立:根据 isShowBluetoothLyricTranslation/isShowBluetoothLyricRoma 解析
  4. 数据流分离:桌面歌词和蓝牙歌词使用不同的数据
  5. 向后兼容:不带前缀的扩展歌词仍可工作

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants