[原创]QLyrics: Linux下面的歌词显示软件

Totem,mplayer,sopcast,realplayer,bmp
hsys
帖子: 28
注册时间: 2006-07-15 12:07

[原创]QLyrics: Linux下面的歌词显示软件

#1

帖子 hsys » 2008-08-07 22:24

截图
================
图片


功能
================
- 支持修改各种显示风格, 包括水平/垂直滚动, 字体颜色, 淡入淡出设置等等
- 自动搜索下载歌词
- 支持设置本地歌词下载目录, 支持搜索多个本地目录
- 支持 OpenGL 绘制(大大降低 CPU 占用率)
- 支持各种歌词文件编码
- 支持多种播放器 (目前支持的播放器: Amarok 1.x MPD)


依赖
================
- Qt >= 4.3
- Python

下载
================
http://qlyrics.googlecode.com/files/qly ... .1.tar.bz2


主程序安装(不含播放器插件)
================
1. 运行 'qmake' 生成 Makefile:

qmake (有些系统需要 qmake-qt4)

OpenGL 支持默认是关闭的, 如果需要启用OpenGL, 运行:

qmake "CONFIG+=opengl"

2. make

3. make install


播放器插件安装
============================
- Amarok 1.x

- 安装到系统插件目录(root 权限)

1. 运行 'plugin/' 目录下面的

./install_amarok_plugin.sh

2. 重新启动 Amarok, 在脚本管理器里面运行即可

- 安装到用户插件目录

1. 在 Amarok 的脚本管理器里面点击安装脚本

2. 选择 'plugin/' 目录下面的 qlyrics.amarokscript.tar.bz2 .

- MPD

MPD 插件不需要安装, 只要在 MPD 播放的时候直接运行 'plugin/mpd/'
目录下面的

./mpd_qlyrics.py

如果你的 MPD 不是运行在本机, 或者修改过 MPD 的端口, 或者配置文件不是
/etc/mpd.conf, 需要打开 mpd_qlyrics.py 修改文件头部的设置.

有任何的意见和建议, 欢迎联系 ^_^ e-mail <hanshuiys A-T gmail.com>.
附件
42.png
43.png
44.png
41.png
上次由 hsys 在 2008-08-09 8:49,总共编辑 1 次。
shimingzhou
帖子: 269
注册时间: 2008-06-28 6:14

#2

帖子 shimingzhou » 2008-08-08 23:09

试用了一下,很好,非常不错。非常感谢你对自由软件的运动作出了实实在在的贡献,特别为你颁发自由软件运动勋章。 :)
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#3

帖子 eexpress » 2008-08-08 23:19

看来没归入dbus的路线。
● 鸣学
igotcha
帖子: 190
注册时间: 2007-02-27 0:43

#4

帖子 igotcha » 2008-08-09 0:35

代码: 全选

igotcha@igotcha-laptop:~/tmp/qlyrics$ make
cd src && make -f Makefile
make[1]: Entering directory `/home/igotcha/tmp/qlyrics/src'
Makefile:402: 警告:覆盖关于目标“../build/obj/configwindow.o”的命令
Makefile:333: 警告:忽略关于目标“../build/obj/configwindow.o”的旧命令
Makefile:409: 警告:覆盖关于目标“../build/obj/lyricsdownloadwindow.o”的命令
Makefile:340: 警告:忽略关于目标“../build/obj/lyricsdownloadwindow.o”的旧命令
Makefile:508: 警告:覆盖关于目标“../build/obj/moc_configwindow.o”的命令
Makefile:471: 警告:忽略关于目标“../build/obj/moc_configwindow.o”的旧命令
Makefile:513: 警告:覆盖关于目标“../build/obj/moc_lyricsdownloadwindow.o”的命令
Makefile:476: 警告:忽略关于目标“../build/obj/moc_lyricsdownloadwindow.o”的旧命令
Makefile:567: 警告:覆盖关于目标“../build/moc/moc_configwindow.cpp”的命令
Makefile:546: 警告:忽略关于目标“../build/moc/moc_configwindow.cpp”的旧命令
Makefile:570: 警告:覆盖关于目标“../build/moc/moc_lyricsdownloadwindow.cpp”的命令
Makefile:549: 警告:忽略关于目标“../build/moc/moc_lyricsdownloadwindow.cpp”的旧命令
g++ -c -pipe -Wall -w -O2 -D_REENTRANT  -DOPENGL_WIDGET -D'\'QT_INSTALL_DATA=\"/usr/share/qt3\"\'' -D'\'PREFIX=\"/usr\"\'' -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I/usr/include/qt3 -I/usr/X11R6/include -I/usr/X11R6/include -I../build/ui/ -I. -I../build/moc/ -o ../build/obj/main.o main.cpp
/bin/sh: Syntax error: Unterminated quoted string
make[1]: *** [../build/obj/main.o] 错误 2
make[1]: Leaving directory `/home/igotcha/tmp/qlyrics/src'
make: *** [sub-src] 错误 2
何解???
注:Ubuntu 8.04 AMD64~
igotcha
帖子: 190
注册时间: 2007-02-27 0:43

#5

帖子 igotcha » 2008-08-09 1:46

搞了半天,累个半死~
用以下命令解决问题:

代码: 全选

qmake-qt4 "CONFIG+=opengl" 
make QMAKE=qmake-qt4
原因是编译器没找到正确的头文件位置,找到qt3的去了~

又及:楼主,显示歌词的时候会在下面出现个"无标题窗口",能不能隐藏阿?
附件
screenshot01.png
hsys
帖子: 28
注册时间: 2006-07-15 12:07

#6

帖子 hsys » 2008-08-09 8:37

eexpress 写了:看来没归入dbus的路线。
写的时候当时是想支持windows的 :D
hsys
帖子: 28
注册时间: 2006-07-15 12:07

#7

帖子 hsys » 2008-08-09 8:39

igotcha 写了:

代码: 全选

igotcha@igotcha-laptop:~/tmp/qlyrics$ make
cd src && make -f Makefile
make[1]: Entering directory `/home/igotcha/tmp/qlyrics/src'
Makefile:402: 警告:覆盖关于目标“../build/obj/configwindow.o”的命令
Makefile:333: 警告:忽略关于目标“../build/obj/configwindow.o”的旧命令
Makefile:409: 警告:覆盖关于目标“../build/obj/lyricsdownloadwindow.o”的命令
Makefile:340: 警告:忽略关于目标“../build/obj/lyricsdownloadwindow.o”的旧命令
Makefile:508: 警告:覆盖关于目标“../build/obj/moc_configwindow.o”的命令
Makefile:471: 警告:忽略关于目标“../build/obj/moc_configwindow.o”的旧命令
Makefile:513: 警告:覆盖关于目标“../build/obj/moc_lyricsdownloadwindow.o”的命令
Makefile:476: 警告:忽略关于目标“../build/obj/moc_lyricsdownloadwindow.o”的旧命令
Makefile:567: 警告:覆盖关于目标“../build/moc/moc_configwindow.cpp”的命令
Makefile:546: 警告:忽略关于目标“../build/moc/moc_configwindow.cpp”的旧命令
Makefile:570: 警告:覆盖关于目标“../build/moc/moc_lyricsdownloadwindow.cpp”的命令
Makefile:549: 警告:忽略关于目标“../build/moc/moc_lyricsdownloadwindow.cpp”的旧命令
g++ -c -pipe -Wall -w -O2 -D_REENTRANT  -DOPENGL_WIDGET -D'\'QT_INSTALL_DATA="/usr/share/qt3"\'' -D'\'PREFIX="/usr"\'' -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I/usr/include/qt3 -I/usr/X11R6/include -I/usr/X11R6/include -I../build/ui/ -I. -I../build/moc/ -o ../build/obj/main.o main.cpp
/bin/sh: Syntax error: Unterminated quoted string
make[1]: *** [../build/obj/main.o] 错误 2
make[1]: Leaving directory `/home/igotcha/tmp/qlyrics/src'
make: *** [sub-src] 错误 2
何解???
注:Ubuntu 8.04 AMD64~
也许是因为qt3的问题? 试试
qmake-qt4
hsys
帖子: 28
注册时间: 2006-07-15 12:07

#8

帖子 hsys » 2008-08-09 8:40

igotcha 写了:搞了半天,累个半死~
用以下命令解决问题:

代码: 全选

qmake-qt4 "CONFIG+=opengl" 
make QMAKE=qmake-qt4
原因是编译器没找到正确的头文件位置,找到qt3的去了~

又及:楼主,显示歌词的时候会在下面出现个"无标题窗口",能不能隐藏阿?
原来没注意这个问题 :oops:
看看下个版本能不能搞定~
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

#9

帖子 xiooli » 2008-08-09 8:49

lz可以把上面那个显示歌词(还能滚动?)的东东做个接口出来吧。
hsys
帖子: 28
注册时间: 2006-07-15 12:07

#10

帖子 hsys » 2008-08-09 8:52

xiooli 写了:lz可以把上面那个显示歌词(还能滚动?)的东东做个接口出来吧。
plugin是单独的, 目前只写了一个python接口, 要求播放器传入文件路径, 播放状态, 还有标题专辑艺术家,
准备写个C的版本来支持audacious
可以看看 plugin/base/python/
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

#11

帖子 xiooli » 2008-08-09 9:24

hsys 写了:
xiooli 写了:lz可以把上面那个显示歌词(还能滚动?)的东东做个接口出来吧。
plugin是单独的, 目前只写了一个python接口, 要求播放器传入文件路径, 播放状态, 还有标题专辑艺术家,
准备写个C的版本来支持audacious
可以看看 plugin/base/python/
晕哦,不懂python啊,lz可以单独弄个出来,只要从命令行接受参数(播放状态啥的),就直接在上面显示了,就类似于gnome-osd那种。
hsys
帖子: 28
注册时间: 2006-07-15 12:07

#12

帖子 hsys » 2008-08-09 9:38

xiooli 写了:
hsys 写了:
xiooli 写了:lz可以把上面那个显示歌词(还能滚动?)的东东做个接口出来吧。
plugin是单独的, 目前只写了一个python接口, 要求播放器传入文件路径, 播放状态, 还有标题专辑艺术家,
准备写个C的版本来支持audacious
可以看看 plugin/base/python/
晕哦,不懂python啊,lz可以单独弄个出来,只要从命令行接受参数(播放状态啥的),就直接在上面显示了,就类似于gnome-osd那种。
其实我写的amarok插件里面都是一些很弱智的os.popen("dcop xxx").read() 运行外部命令来获取结果
我也不熟悉python >_<
三翻领
帖子: 310
注册时间: 2005-10-15 18:20
联系:

#13

帖子 三翻领 » 2008-08-09 14:17

commands.getoutput('dcop amarok player title')
不知道楼主在测算横向歌词单行长度上是否采用了QFontMexxxx类,可能在测算精度上的确受字体影响而不能剧中。
hsys
帖子: 28
注册时间: 2006-07-15 12:07

#14

帖子 hsys » 2008-08-10 8:16

三翻领 写了:commands.getoutput('dcop amarok player title')
不知道楼主在测算横向歌词单行长度上是否采用了QFontMexxxx类,可能在测算精度上的确受字体影响而不能剧中。
嗯, 是用了QFontMetrics
我觉得我这边字体都是正常的, 可能有些中英文混排不正常是因为fontconfig里面设置有些问题, 或者是一些特殊的字体本身有问题?
三翻领
帖子: 310
注册时间: 2005-10-15 18:20
联系:

#15

帖子 三翻领 » 2008-08-10 11:43

hsys 写了:
三翻领 写了:commands.getoutput('dcop amarok player title')
不知道楼主在测算横向歌词单行长度上是否采用了QFontMexxxx类,可能在测算精度上的确受字体影响而不能剧中。
嗯, 是用了QFontMetrics
我觉得我这边字体都是正常的, 可能有些中英文混排不正常是因为fontconfig里面设置有些问题, 或者是一些特殊的字体本身有问题?
按照qssistant的说法,打印字体用这个函数会有测算误差,非打印字体就可以。应该和中英文以及特殊字符无关。
回复