lrcShow-II简介
下载和安装
注意事项
工作机制
提供的设置项
本地歌词匹配规则
快速设置栏
歌词的提前和滞后
歌词编辑器
显示模式
快捷键
其他功能
编码问题
关于歌词策略
lrcShow-II简介:
lrcShow-II是一个Amarok歌词显示脚本插件,与普通的歌词脚本不同的是,该脚本采用外部独立的GUI来显示当前Amarok音轨的lrc动态歌词。该脚本采用python和qt3库撰写的,因此依赖pyqt3。0.6.0版本开始,lrcShow-II开始支持pyqt4。当脚本启动后将自动识别系统中pyqt的版本。当前优先使用pyqt3版本。
lrcShow-II基于GPL-v2.0授权,欢迎接受修改、重新打包等GPL-v2.0协议允许的行为。具体请参看相关协议正文。
下载和安装:
请访问kde-apps或者使用Amarok的脚本管理器直接下载安装。作者主页将不再提供软件包的下载。目前有部分发行版为lrcShow-II打包,如magic linux有相关RPM, 可以直接使用他们的包管理系统安装、升级。
注意事项:
首先要确保依赖关系的正确,即用户系统中安装有python(>python-2.4)和pyqt(pyqt3或者pyqt4)。另外请确保Amarok中显示的歌曲歌名、歌手的tag信息不存在乱码情况且正确。
当前pyqt4版本尚处于开发阶段, 请尽量使用pyqt3版本。对于pyqt4的支持只是为将来做准备,目前仍然将以pyqt3版本作为开发重点。
工作机制:
本歌词脚本在歌词滚动上没有采用普通的匹配方法,而是根据歌词的时间标签利用qt库本身的计时器来实现依次标亮当前歌词和滚动歌词,这种方式避免了采用匹配方法而导致的高cpu占用量,同时最大限度的提高了精确度,理论上为0.01秒。但是也有比较大的缺陷,由于Amarok没有提供手动改变歌曲进度的信号,导致lrcShow-II在用户改变当前歌曲进度后无法做到歌词滚、标亮的跟随。
当脚本开始工作后,首先通过dcop功能获得当前播放歌曲的歌手、歌名信息,然后在用户设置的本地lrc歌词目录下搜索有无匹配的lrc文件,在没有搜索到本地lrc文件的情况下,lrcShow-II会自动搜索百度服务器,并在歌词显示界面中显示“正在从百度搜索...”的信息,在找到的情况下会立即显示并开始工作,在没有找到的情况下会显示“没有找到匹配的歌词”。如果用户在没有联网的情况下使用lrcShow-II并且没有找到相匹配的本地lrc文件,脚本GUI界面会显示“网络连接超时”的信息。
提供的设置项:
lrcShow-II允许用户使用本地的lrc歌词文件,因此您可以在使用前右击lrcShow-II的GUI界面呼出菜单,通过点击“设置本地歌词路径”来设置您存放的lrc歌词文件目录。默认设置的搜索路径是您的主目录。
如果您需要下载本地没有的lrc歌词(前提是能够在搜索引擎搜索到),那么您可以通过右键菜单的“是否从网络下载”设置。下载的歌词文件将被存放在您设置的本地歌词路径下。同时,当您没有选择“自动下载”功能,而本地没有找到而可以网络搜索到,那么您还可以选择“仅下载当前”选项进行临时下载
根据您的使用习惯,您还可以根据右键菜单设置显示歌词的行数以及GUI界面的多种配色。
本地歌词匹配规则:
lrc文件的命名规则并没有统一的规定,但是当前比较通行的方法是采用“artist - title.lrc”的形式,因此lrcShow-II也采用了这种方法。如果您的本地歌词lrc文件的命名方法不同于上述规则,请做相关调整,造成不便请多海涵。同样的,从网络下载的lrc文件也将会以此规则命名。
快速设置栏:
为了方便用户的设置,lrcShow-II提供了一个快速设置栏,您可以通过双击GUI界面来呼出或者隐藏,位置在GUI界面的左上角。您可以在快速设置栏中调整歌词偏移量、保存歌词偏移量、快速简繁体转换和打开歌词编辑器。pyqt4版本同时也提供了对Amarok的控制。
歌词的提前和滞后:
由于lrc歌词文件的质量参差不齐,通过不同播放器制作的lrc文件也会存在误差,因此一个显示lrc歌词的软件必须要有调整歌词偏移量的能力。lrcShow-II同样提供了这样的功能。您有两种方法来设置偏移量,一种是通过右键菜单,另外一种是可以通过双击GUI界面来呼出快速设置栏进行设置。每点击一次可以使歌词整体提前或者滞后0.2秒,完成偏移量的调整后,您可以选择将偏移量保存到lrc文件中(仅对本地lrc文件)。
歌词编辑器:
lrcShow-II通过一个歌词编辑器提供了简单的歌词编辑功能。您可以通过快速设置栏或者右键菜单来调出该歌词编辑器。如果当前播放的歌曲正在使用本地的lrc文件,打开歌词编辑器后将会自动调入该lrc文件,否则先会跳出一个对话框,提示您没有找到本地歌词文件,然后将会打开一个仅写有空lrc文件头的歌词编辑器,方便用户编辑歌词。
用户可以将txt的歌词拷贝进lrcShow-II歌词编辑器,然后通过“插入时间标签”按钮(热键F5)来插入当前歌词行的时间标签,然后光标自动转到下一行的开头处等待插入该行的时间标签。
另外,歌词编辑器也提供了一个简繁体转换的功能。完成歌词编辑后您可以选择“快速保存”和“另存为”,“快速保存”将会把当前编辑的歌词保存到您设置的本地歌词文件目录中,通过“另存为”则可以选择保存到其他目录中。
显示模式:
lrcShow-II提供了三种显示模式。
在默认情况下以“普通模式”运行,这种模式下,GUI窗口是带边宽和标题栏,可以放大缩小(允许范围内),也可以被其他窗口覆盖,显示歌词的行数由用户设置决定。
另一种是“全屏模式”,这种模式的特点是整个窗口覆盖在屏幕上,用户不能改变窗口大小,显示的歌词行数由桌面分辨率和字体大小决定。该模式下不能设置歌词显示行数。用户可以通过“Esc”快捷键或者右键菜单选择“普通模式”退回到普通模式
第三种是“OSD模式”。这种模式的特点是GUI无边框无标题栏,且永远在其他窗口顶端,用户不能改变窗口大小。同样用户也可以通过“Esc”快捷键或者右键菜单选择“普通模式”退回到普通模式。
快捷键:
lrcShow-II所有设置均可以在菜单或者快速配置栏中进行设置,但是考虑到方便用户,也默认设置了一些快捷键。用户可以是用+/-来快速调整偏移量(提前/滞后)。当用户处于“全屏模式”或者“OSD模式”下时,可以利用“Esc”键返回到“普通模式”下。在lrcShow-II歌词编辑器下,用户可以按F5键方便的插入时间标签。
pyqt4版本在快捷键上做了调整,保留原有快捷键不变的情况下,增加了:F-全屏,O-OSD模式,E-歌词编辑器。0.6.1版本开始,pyqt4和pyqt3在快捷键上保持统一。
其他功能:
lrcShow-II还支持联网的代理功能,用户可以通过右键菜单进行设置。在代理设置的输入框中输入的代理形式形如:http://www.xxx.yyy.com:80或者http://606.60.60.60:80,如果留空则表明不使用代理。
当用户设置为“不自动下载”时,如果网络中能够搜索到歌词,那么用户也可以选择仅下载当前歌词而不改变是否自动下载设置。
目前lrcShow-II有三个搜索引擎,分别是baidu、sogou和ttplayer,用户可以在右键菜单中方便的切换。
编码问题:
这里涉及到两种编码,一种是本地lrc歌词的编码,这个可以在右键菜单中设置。另一个是网络中搜索到的lrc歌词的编码。本地lrc歌词的预设是gb18030,这对于简体中文用户来说不存在问题,其他地区的用户,需要酌情进行设置。如果设置不当,会在读取本地歌词时出现编码错误。由于资源的关系,目前只能找到baidu和sogou两个搜索引擎,而这两个搜索引擎提供的lrc歌词编码都是gb编码。
正因为如此,可能会造成很多麻烦。非简体中文用户在设置了本地歌词编码后,在下载的时候很有可能会出现编码错误的对话框,这是无法避免的。或许有一个适合用户的歌词搜索、下载网站是解决这个问题的好办法,但是目前为止还没有找到适合非简体中文用户的搜索站点。
0.5.0版本开始,读取编码和保存编码正式分离,这主要是由于实现了对本地lrc歌词编码的自动探测。因此您将无须关心您保存的本地lrc歌词使用了什么编码,但是仍需要设置保存编码,这将关系到下载lrc歌词到本地后所使用的编码,同时当您修改本地歌词后(包括保存偏移量等保存动作),也将使用这个保存编码(这很可能会改变原先该文件所使用的编码)。
关于歌词策略:
从0.5.0版本开始,lrcShow-II创新的引入了“歌词策略”概念,通过这个概念而引申出来的功能,将大大的方便用户。当前共有五种策略,分别是“不使用策略”、“不搜索网络”、“不搜索本地”、“什么都不做”和当本地搜索到多个符合的lrc歌词时,记忆用户所选的那个。默认下每首音轨都是采用“不使用策略”。当音轨在本地搜索到多个符合条件的歌词时,用户可以在选择对话框中做出选择,如果同时选择了“记住”,那么也就使用了策略,该界面下有两种策略可以使用,分别是记住用户所选的歌词和“不搜索本地”。
用户可以通过右键菜单的“当前音轨歌词策略”菜单项设置相关策略。如果当前音轨存在策略,点击该菜单项将显示所采用的策略,并提供取消该策略的选项;如果当前音轨没有使用策略(其实是采用了“不使用策略”的策略),则会出现一个策略设置对话框
这些策略信息全部记录在0.5.0版本后引入的一个数据库文件中(~/.kde/share/apps/amarok/scripts-data/lrcShow-II.db),该数据库采用了二进制的方式保存相关数据。需要提醒的是,该数据库中的信息是按照用户locale写入的,当用户改变本地locale后,请务必删除原先的数据库文件。
举例说明“歌词策略”的强大功能。最基本的,他可以记住当音轨搜索到多个符合条件的歌词后用户所选正确的那个,如果都是错的,那么可以跳过本地搜索而直接从网络搜索。如果该音轨在网络上搜索到的是错的歌词,可以通过策略让他不搜索网络从而避免这个问题。