Skip to content

Commit

Permalink
Update README.MD
Browse files Browse the repository at this point in the history
  • Loading branch information
SmileYik committed Jan 12, 2025
1 parent e9deb77 commit 476d51c
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 17 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.cache/**
build/**
musicfox-target-port.patch
.history/**
5 changes: 2 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.5)

project(lyric-for-musicfox VERSION 0.1 LANGUAGES CXX)
project(lyric-for-musicfox VERSION 1.3 LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
Expand Down Expand Up @@ -119,7 +119,7 @@ endif()
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
if(${QT_VERSION} VERSION_LESS 6.1.0)
set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.lyric-for-musicfox)
set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.lyric-for-musicfox)
endif()
set_target_properties(lyric-for-musicfox PROPERTIES
${BUNDLE_ID_OPTION}
Expand All @@ -141,7 +141,6 @@ if(QT_VERSION_MAJOR EQUAL 6)
if(UNIX)
qt_finalize_executable(mpris-lyric-sender)
endif()

endif()

# 生成带有自定端口的补丁
Expand Down
47 changes: 33 additions & 14 deletions README.MD
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Lyric For Musicfox
# Lyric For Musicfox

本程序基于细微修改后的[go-musicfox](https://github.com/go-musicfox/go-musicfox)项目上,
使得能够在Linux KDE Plasma6桌面上显示歌词。若您的设备运行着 Linux,则可以在设置界面中勾选上
Expand All @@ -7,14 +7,20 @@ Mpris 模式并保存,而免于运行打补丁的 musicfox。
如果鼠标事件无法正常穿透则使用 `-platform xcb` 参数尝试启动,即 `./lyric-for-musicfox -platform xcb`
WINDOWS 下运行会出现无法移动窗口现象,需要改配置文件+反复开关歌词程序以确定位置。

### 构建
## 构建

### 利用 Github Action 构建

直接 folk 一份仓库后,等待 action 跑完后可以在 action 下下载构建好的二进制包。

### 自己动手构建

前置需求:[go-musicfox](https://github.com/go-musicfox/go-musicfox)项目所需需求以外还需要:

* QT5 或 QT6
* libdbus-1 (仅Linux下构建才需要)

```
```shell
clone https://github.com/SmileYik/lyric-for-musicfox.git
cd lyric-for-musicfox
cmake -S . -B build
Expand All @@ -23,7 +29,8 @@ make
```

CMake 配置时可选编译打补丁的musicfox。
```

```shell
cmake -S . -B build -DSKIP_BUILD_MUSICFOX=YES # 跳过构建 musicfox
cmake -S . -B build -DSKIP_BUILD_MUSICFOX=NO # 构建 musicfox
```
Expand All @@ -33,26 +40,38 @@ cmake -S . -B build -DSKIP_BUILD_MUSICFOX=NO # 构建 musicfox
可选修改歌词通信端口:打开 `CMakeLists.txt` 修改 `CONFIG_PORT` 为自己想要的通信端口后进行编译即可。
若编译过程中出现打补丁失败字样可以自行文本修改`musicfox.patch``${CONFIG_PORT}`至想要的端口后手动打补丁编译。

### 运行模式
## 运行模式

现有两种运行模式,一种需要运行修改后的 go-musicfox,另一种依赖于 mpris,并且从其中获取歌词。

现有两种运行模式,一种需要运行修改后的 go-musicfox,另一种依赖于 mpris,并且从其中获取歌词
但两种运行模式都有共同点,就是歌词程序会监听一个UDP端口,该UDP端口用于接收歌词与相关指令信息,之后在窗口中渲染出来

#### 修改 go-musicfox 的运行模式
### 修改 go-musicfox 的运行模式

该模式支持 Linux 及 Windows 平台。主要依赖于修改后的 go-musicfox 客户端。修改后的 go-musicfox 客户端在
更新歌词时,都会通过 UDP 协议,发送当前当句歌词信息给桌面歌词程序,然后桌面歌词程序再进行窗口渲染,将歌词文本
渲染在窗口中。在该模式下,桌面歌词程序并不知道完整的歌词信息,仅知道当前时间下的单句歌词信息。
渲染在窗口中。在该模式下,桌面歌词程序并不知道完整的歌词信息,仅知道当前时间下的单句歌词文本信息。若歌词超过了
窗口的最大宽度,则需要进行滚动展示歌词,但是由于不知道当前歌词的持续的具体时间,所以需要依赖于 go-musicfox 发送
歌词的频率: 每多发一次相同歌词,就将当前显示的歌词滚动固定偏移量一次。

大概工作流程为: 修改后的go-musicfox --发送歌词--> lyric-for-musicfox

#### 依赖于 mpris 的运行模式
### 依赖于 mpris 的运行模式

该模式仅支持 Linux, 可以在设定界面中启用设置,若您的设备为 Windows,则在编译时会自动剔除 mpris 相关的代码。
启用该模式后,桌面歌词会启用 mpris 控制器,从 mpris 中获取当前播放歌曲信息及完整的歌词信息,并模拟时间轴,推算
当前时间点应该显示的歌词,通过 UDP 报文发送至渲染端。相当于启动了一个新的控制器用于顶替修改后的 go-musicfox 客
户端功能。

大概工作流程为:go-musicfox --更新歌词及播放状态--> mpris --获取信息--> lyric-for-musicfox 的 mpris 控制器 --发送歌词--> lyric-for-musicfox.

该模式仅支持 Linux, 可以在设定界面中启用设置。桌面歌词程序会从 mpris 中获取当前播放中的歌曲的完整歌词信息,
并内置计时器计算当前时间下应该显示的歌词进行渲染, 从而不需要修改后的 musicfox。
对于 lyric-for-musicfox 的 mpris 控制器,可以单独运行,并指定歌词发送的目的地IP和目的地的端口。假如您正在使用
termux 版本的 go-musicfox, 可以单独运行 mpris 控制器,将歌词发送至同一网络下的 PC 桌面设备,进行歌词渲染。
具体效果如下图:

大概工作流程为:go-musicfox --更新歌词及播放状态--> mpris --获取信息--> lyric-for-musicfox
![termux-musicfox](./docs/termux-1.png)

### 配置
## 配置

![setting window](./docs/3.png)

Expand All @@ -72,6 +91,6 @@ cmake -S . -B build -DSKIP_BUILD_MUSICFOX=NO # 构建 musicfox
取消勾选“Frame Less”复选框,以显示歌词窗口边框,此时对歌词窗口进行移位或调整窗口大小。当认为合适时,勾选上“Frame Less”复选框,
与此同时,按下“Save Self Position”按钮进行保存相关信息。之后直接不保存配置,并关闭设定窗口,到此设置完毕。

### 效果
## 效果

![2](./docs/2.png)
Binary file modified docs/2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/termux-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 476d51c

Please sign in to comment.