mplayer前端CMMusic版本ver1.6(新增对CUE支持)

仅仅用于软件推荐,不适合发求软件或软件使用问题方面的贴子
bargain685
帖子: 49
注册时间: 2008-12-08 18:12

mplayer前端CMMusic版本ver1.6(新增对CUE支持)

#1

帖子 bargain685 » 2008-12-10 1:23

version 1.6
cmmusic (Console Mplayer Music)
Author : fedorawang
Email : kissme2142@gmail.com
URL : https://sourceforge.net/projects/cmmusic/
License : GNU General Public License (GPL)

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.

---------------------------------------------------------

语言:简体中文

指引:

---------------------------------------------------------

简介:

CMMusic是啥软件?我为什么要用它?

CMMusic是MPlayer的前端(Frontend),是基于(n)curses开发的控制台界面软件。
相对于其它播放器,有以下优势:

a.播放能力:相对于mp3播放器,CMMusic依靠MPlayer的强大后盾完全可以胜任几乎
所有的音频格式文件,甚至可以用来播放视频文件,如管理并播放MV文件列表。

b.资源占用:由于使用控制台界面库,CMMusic在资源及CPU占用上几乎可以忽略不计,
当然,剩下的就交给MPlayer了。

c.皮肤外观:使用大家熟悉易入手的XMMS界面布局;字体和特效(如背景图,透明)完全
取决于控制台终端,支持xterm,urxvt,gnome-terminal,konsole及文本模式终端。

d.操作方式:在X环境下,你可以像使用XMMS一样用鼠标来操作CMMusic,或通过快捷键
来完成这些操作。

e.特殊能力:非X环境运行,歌词手动下载,百度MP3试听下载。

---------------------------------------------------------

你可以从以下地址获得软件:
https://sourceforge.net/projects/cmmusic/

BUG报告及建议:
https://sourceforge.net/tracker2/?fu...7&atid=1126799

---------------------------------------------------------

运行环境要求:

1.Linux.
2.mplayer.
3.ncurses或curses.

---------------------------------------------------------

如何编译和安装?

[1] ./configure
[2] configure选项:
--enable-envcode=[ARG] 设置运行环境变量,缺省为UTF-8
--enable-lrccode=[ARG] 设置LRC歌词文件的编码,缺省为GBK
[3] make
[4] make install
[5] 安装目录结构:
程序位置: /usr/local/bin/cmmusic
插件目录: /usr/local/share/cmmusic/plugins/*
用户数据: ~/.cmmusic/* (动态生成)
[6] make uninstall ,或直接删除以上安装目录结构。

---------------------------------------------------------

如何使用?

1.安装完毕后,在控制台下运行cmmusic.
2.按INS增加文件到列表.
3.按回车播放!

你能在该软件站点或解压的源码包目录下找到键位表图,以便于更快熟悉键位操作。

----------------------END--------------------------------


---------------------------------------------------------
修改日志:

ver 1.6 2009-06-21
1.增加对cue文件的读取分析及处理(需要Plugin)。
2.修正打开目录时对目录软链接和未知文件类型的处理。
3.打开到不可用路径时,将重置成根目录。
4.歌词特效为为回避叠字BUG带来的不便给增加个指示符。
5.修正插件模式下处理菜单没被刷新的BUG。
6.修正commdef.h文件中curses库的头文件位置。
7.修正mplayer被杀掉后cmmusic退出不会保存播放列表的BUG。
8.lrc功能增加对offset标志的识别。
9.修正使用autotools时没有正确使用config.h编译的BUG。
10.修正plugins工程编译错误的BUG。


ver 1.5 2009-03-16
1.增加配置功能模块,常用配置能被记忆,包括:音量大小,播放模式,文件最近打开位置,LRC目录,文件类型。
2.增加文件类型过滤,播放文件类型,文件列表类型和目录设置时都有过滤功能。过滤类型可以配置文件中自定义。
3.增加确认框交互,在设置LRC目录,删除整个列表和保存列表时可能会有确认框*出。
4.增加批量添加目录下所有播放文件的功能。
5.修正64位下WPARAM宏定义导致编译无法通过的BUG。
6.修正播放文件开始时有0.5秒音量异常的BUG。
7.歌词叠字的BUG可以通过修改配置文件来避免,并增加可配置效果。
8.configure增加对非宽字符curses的支持(不支持中文),去掉1.4中过多的可选项。
9.快捷键根据mplayer习惯重新定义并可自定义配置。
10.歌词断字进一步优化。
11.修正mplayer被杀死后,主程序异常退出的BUG。
12.增加MP3下载试听插件,增加curseui插件工程。
13.增加KeyMode功能,用于切换cmmusic和mplayer按键模式。
14.修正控制台窗口过小会引起程序崩溃的问题。

ver 1.4 2009-02-21
1.增加四个按钮功能:增加,删除,上移,下移,清除列表。
2.增加文件列表操作功能,选择文件可视化。
3.增加关于按钮,显示版本及版权。
4.增加音量调节快捷键。
5.修正音量设置后播放新文件时没有对应的BUG。
6.修正播放文件时无法真正暂停的BUG。
7.优化由autotools组织的工程,会优先选择ncurses。
8.为configure增加部分可选选项。主工程和插件的安装分开。
9.插件仅保留歌词下载插件和GTK的文件打开插件。
10.快捷键修正:1,退出增加文件,列表操作,插件操作模式的快捷键由'q'改成ESC。

ver 1.3 2009-01-03
1.取消上个版本的--gbk和--text选项.替换为-lrc gbk和-mode text.
2.主程序增加部分消息机制.以适应接收插件通知.
3.增加下载歌词插件(手动).
4.增加一个方便添加播放文件的GTK界面插件.(-_-!)
5.增加一个清除播放列表的插件.
6.改由autotools组织工程.
7.数据目录,插件目录,主程序目录重新定义.

ver 1.2 2008-12-15
1.修正一个Lrc无法正确解析显示的BUG.
2.增加Plugin插件模式,用户可以使用shell脚本甚至二进制文件自定义插件功能和热键.
3.开始命令转移到start.sh文件.用户可通过修改命令脚本来自定义mplayer的启动参数和其它操作.此脚本如果不存在,播放器会生成缺省脚本.
4."部分"修正歌词中文断行乱码或无字的BUG.
5.取消上个版本的颜色模式,原因是为了让用户更自由地定义界面颜色.
6.控制台大小被修改时,播放器可以做出自适应调整了.
7.为部分玩家因不包含相关头文件而引起编译出错的问题修正了文件结构.
8.增加--text选项,以适应在zhcon --utf8模式下,更换窗口边框以修正字符长度引起框架混乱的BUG。

ver 1.1 2008-12-9
1.增加--gbk选项.在TEXT模式下,使用zhcon可以正常显示中文了.方法是:运行zhcon,运行./CMMusic --gbk.
2.修改查找lrc目录策略,查找目录为:播放文件目录,./Lrc目录,指定目录.
3.增加用鼠标点击菜单的支持,单击为选中,双击为播放(发现在TEXT的zhcon环境中鼠标无效).
4.缺省播放模式为多数人所用的循环顺序播放.
5.鼠标在没必要时会隐藏起来.
6.打开颜色模式.

ver 1.0 2008-12-8
1.完成基本功能.

----------------------END--------------------------------
:em11


题外话:
前一段时间收到xulang的BUG反馈邮件。于是开始1.6的开发。在测试时,随便讲讲一下新版本解决BUG的一些过程。


1.打开文件时没有反应。
这个BUG好像较早时就有人反映了,但我一直不明白是怎么产生的。xulang报告说是ubuntu 9.04,于是我安装了虚拟机。测试了几天,一个偶然的机会,让我把这个BUG给重现了:我使用了VirtualBox共享目录的方式,音乐文件放在共享目录(Win)下测试,结果BUG一下就出现了。经查,文件类型返回的是DT_UNKNOWN!结果连".."都没有了。所以打开文件就没反应了。修正过程中,还发现了软链接目录和文件也被忽略了...于是也修正了无法显示软链接的BUG。不过测试过程中发现软链接很难知道是目录还是文件链接,有办法知道,就是尝试打开,但那样速度太慢,放弃了。直接改成了只要是软链接都显示。


2.建立快捷方式的cmmusic
这次与XXX的交流,顺便让我发现了XXX自制的deb包是有快捷方式的。喜!于是我马上也在自己的包里按样子做了一个,起名叫cmmusicx。但开始测试时启动不了。我把我解决的过程给大家说下:
(查看错误输出)
[wxj@localhost bin]$ cat ~/.cmmusic/Err.log
mplayer: error while loading shared libraries: libGL.so.1.2: cannot open shared object file: No such file or directory
(查找相关so的位置,发现该so不在lib目录下)
[wxj@localhost bin]$ ldd /usr/local/bin/mplayer | grep libGL.so.1.2
libGL.so.1.2 => /usr/lib/fglrx/libGL.so.1.2 (0x00121000)
(查找类似的so,发现确实没有1.2版本的,至少软链接也没有)
[wxj@localhost bin]$ ls /usr/lib/libG*
/usr/lib/libGL.so /usr/lib/libGLU.so /usr/lib/libGLU.so.1.3.070002
/usr/lib/libGL.so.1 /usr/lib/libGLU.so.1
[wxj@localhost bin]$ ls /usr/lib/libGL.so.1 -al
lrwxrwxrwx 1 root root 26 2008-10-12 /usr/lib/libGL.so.1 -> /usr/lib/xorg/libGL.so.1.2
(于是尝试自建个软链接...)
[wxj@localhost bin]$ ln /usr/lib/fglrx/libGL.so.1.2 /usr/lib/libGL.so.1.2 -s
ln: 创建符号链接 “/usr/lib/libGL.so.1.2”: 权限不够
[wxj@localhost bin]$ su
口令:
[root@localhost bin]# ln /usr/lib/fglrx/libGL.so.1.2 /usr/lib/libGL.so.1.2 -s
[root@localhost bin]# exit
exit
[wxj@localhost bin]$ ./cmmusicx
(成功了!)

再说个BUG,有些人(比如我),在菜单里删除某项快捷方式后,以后想再加回,发现把 cmmusic.desktop 放回去也无效了。解决方法是把~/.local/share/applications/下的文件全删了即可。这个目录估计是各个用户的过滤目录,以此区别不同用户的不同菜单。总之你要发现开始菜单里的cmmusic快捷方式没出来,就这样试一下。
玩Linux的乐趣之一,就是解决问题,在解决的过程变得机灵。


3.歌词高亮出现叠字BUG问题。
这个问题我一直没遇到,遇到的同学可以把系统版本情况跟我说下。这个BUG的现象是歌词高这显示时,出现叠字。目前的解决方法修改~/.cmmusic/cmmusic.cfg的lrclight字段,改成0即可。但改成0后没效果了,连唱到哪一句也不好找了,后来 边城浪子 建议我加个框,我最后的处理是在唱到的那一句前面加个">>"指示符,也算比较明显了吧。


4.autotools对config.h的使用。
这个BUG有点无语...我一直以为我正确使用了autotools,直到这次测试时才发现之前一直没有把config.h里的宠编译进去。此版本特别加入#include "config.h"以修正。


5.对cue的支持。
此版本较大的一个改动在于对cue的支持。算是比较简单的支持吧。为了避免给主程序加杂乱的代码(本来已经很乱了...),我把cue的解析放到cuelist中去了,大家可以到plugin中找到它,这样做的目的是:cue可能多种多样,暂且给个临时方案,写在一个文件里也方便调试。大家如果有无法解析的cue,要么自己调试,给我提供些修改意见,要么给我发cue文件来。对cue的支持很简单,以下格式,第一个数字为开始时间(秒),第二个为结束时间。第三个为标题,第四个为文件全路径。开头的cue为标识以备以后扩展其它格式用。(注:cue和ape必须在同个目录)
#|cue|1326|1521|叹香菱-陈力|/media/MAIN/Media/CUE/红楼梦-电视连续剧原声.ape
对cue的支持,进度条仍然是整体ape的进度条。本来就是单个文件,做每个分段的进度太辛苦了。由于一般ape较大,如果一开始就播非开头的片断,那么开始会有一两秒响的是开头的音乐,估计是由于文件较大mplayer对setpos的反应慢的缘故。如果想只播放ape,需要在~/.cmmusic/cmmusic.cfg的musictype增加ape类型,就可以添加了,当然手动加到music.lst中也可以。


6.奇怪的现象
在测ubuntu时,发现一个奇怪的BUG,即Plugin无法读取,查了老半天不知所去云,后来又莫名奇妙的又好了。我不放心,又重装了了ubuntu(虚拟环境),再测,BUG再没出现了... 此外,发现cmmusic.cfg中的plusdir的选项好像设置无效 -_-! 。不过既然版本发布工作都差不多了。这个问题也就暂时不查了。

结语:
从最初做一个自己方便用的工具共享给大家,到现在1.6版本,陆陆续续快一年。尽管更新不是很积极,但大家的BUG反馈还是给了我继续完善的动力。我也在这个过程学习了一些Linux下开发和发布的东西,从开始时只有makefile的源码压缩包,到由autotools来组织工程,从早期需要手动添加文件到music.lst到现在有选择文件的界面,从以前只在我的F8上测试,到现在好歹有了ubuntu9.04和Fedora11的虚拟机测试环境,可以提供rpm和deb包了。负责一个给大家使用的软件开源工程,并在其中解决大家提出的问题,确实能让人变得更加有责任心,更加努力去把这个东西做好。

题外话一下,虽然我里面有了baidump3和歌词下载的功能,写得极烂,可居然没有人反馈...敢情这些功能是没人关注啊。看来当初没打算写得更好是对了。

最后再提醒一下,大家使用过程中出现BUG。如果你要问其他使用者,在论坛上问是没问题的,但如果要问我,请电邮我或到软件页面(sourceforge)的BugReport去提,我可不是所有论坛都去过。

感谢xulang和边城浪子的BUG反馈和建议!
附件
keymap.png
bb.png
aa.png
上次由 bargain685 在 2009-06-23 6:11,总共编辑 10 次。
zhouhui920
帖子: 74
注册时间: 2008-12-05 5:33

Re: mplayer简约控制台前端CMMusic.听歌专用.

#2

帖子 zhouhui920 » 2008-12-12 22:05

hao dong xi dou mei ren yao ne
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: mplayer简约控制台前端CMMusic.听歌专用.

#3

帖子 xiooli » 2008-12-12 22:14

下来看看。
头像
想入非非
帖子: 8078
注册时间: 2008-07-14 22:42
来自: Beijing
联系:

Re: mplayer简约控制台前端CMMusic.听歌专用.

#4

帖子 想入非非 » 2008-12-12 22:54

支持一个。。。也是一个很好的选择,看看是不是比xmms2好用 :em06
Ubuntu User
bargain685
帖子: 49
注册时间: 2008-12-08 18:12

Re: mplayer前端播放器CMMusic版本ver1.2(支持歌词,插件扩展)

#5

帖子 bargain685 » 2008-12-16 2:09

:em06
版本更新了,自己顶一下。
头像
牙签儿
帖子: 509
注册时间: 2007-06-30 0:27

Re: mplayer前端播放器CMMusic版本ver1.2(支持歌词,插件扩展)

#6

帖子 牙签儿 » 2008-12-16 10:39

请问楼主,这是怎么回事呢?编译的时候出现的错误
Building file: ../UIMgr.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"UIMgr.d" -MT"UIMgr.d" -o"UIMgr.o" "../UIMgr.cpp"
../UIMgr.cpp: In member function ‘void CUIMgr::PrintLrc(const char*)’:
../UIMgr.cpp:1100: error: ‘mvwaddwstr’ was not declared in this scope
../UIMgr.cpp: In member function ‘void CUIMgr::PrintPlugin(const char*)’:
../UIMgr.cpp:1137: error: ‘mvwaddwstr’ was not declared in this scope
make: *** [UIMgr.o] Error 1
反对台独,反对藏独,反对孤独!
apt-get不是万能的:

代码: 全选

sudo apt-get install girlfriend
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
有一些软件包无法被安装。
下列的信息可能会对解决问题有所帮助:
下列的软件包有不能满足的依赖关系:
girlfiend: 依赖: hourse但是它将不会被安装
girlfiend: 依赖: car但是它将不会被安装
house,car: 依赖: money但是它将不会被安装
E: 无法安装的软件包
bargain685
帖子: 49
注册时间: 2008-12-08 18:12

Re: mplayer前端播放器CMMusic版本ver1.2(支持歌词,插件扩展)

#7

帖子 bargain685 » 2008-12-16 12:44

牙签儿 写了:请问楼主,这是怎么回事呢?编译的时候出现的错误
Building file: ../UIMgr.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"UIMgr.d" -MT"UIMgr.d" -o"UIMgr.o" "../UIMgr.cpp"
../UIMgr.cpp: In member function ‘void CUIMgr::PrintLrc(const char*)’:
../UIMgr.cpp:1100: error: ‘mvwaddwstr’ was not declared in this scope
../UIMgr.cpp: In member function ‘void CUIMgr::PrintPlugin(const char*)’:
../UIMgr.cpp:1137: error: ‘mvwaddwstr’ was not declared in this scope
make: *** [UIMgr.o] Error 1

恩...你可以把此句注释掉看下。这是一个打印wchar_t的函数。
换成
char a[2048];
wcstombs(a,wcs,2048);
mvwaddstr(X,X,.... ,a, ...);
我看下有这种情况的人多不多。
bargain685
帖子: 49
注册时间: 2008-12-08 18:12

Re: mplayer前端播放器CMMusic版本ver1.2(支持歌词,插件扩展)

#8

帖子 bargain685 » 2008-12-16 13:04

我修改了绘图所用函数,你试下。
附件
UIMgr.cpp.tar.gz
(5.58 KiB) 已下载 117 次
头像
牙签儿
帖子: 509
注册时间: 2007-06-30 0:27

Re: mplayer前端播放器CMMusic版本ver1.2(支持歌词,插件扩展)

#9

帖子 牙签儿 » 2008-12-16 14:02

报告楼主出现新错误:
Building target: CMMusic
Invoking: GCC C++ Linker
g++ -o"CMMusic" ./Helper.o ./LrcMgr.o ./PlayerMgr.o ./PluginMgr.o ./UIMgr.o ./main.o -lcursesw -lpanelw -lmenuw -lpthread
/usr/bin/ld: cannot find -lcursesw
collect2: ld returned 1 exit status
make: *** [CMMusic] Error 1
:em06
反对台独,反对藏独,反对孤独!
apt-get不是万能的:

代码: 全选

sudo apt-get install girlfriend
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
有一些软件包无法被安装。
下列的信息可能会对解决问题有所帮助:
下列的软件包有不能满足的依赖关系:
girlfiend: 依赖: hourse但是它将不会被安装
girlfiend: 依赖: car但是它将不会被安装
house,car: 依赖: money但是它将不会被安装
E: 无法安装的软件包
bargain685
帖子: 49
注册时间: 2008-12-08 18:12

Re: mplayer前端播放器CMMusic版本ver1.2(支持歌词,插件扩展)

#10

帖子 bargain685 » 2008-12-16 14:06

恩,我料到了。不支持宽字符。
把w去掉就可以了。
lihoo_hoso
帖子: 16
注册时间: 2006-08-10 14:29
来自: 湘潭

Re: mplayer前端播放器CMMusic版本ver1.2(支持歌词,插件扩展)

#11

帖子 lihoo_hoso » 2008-12-26 12:31

牙签儿 写了:报告楼主出现新错误:
Building target: CMMusic
Invoking: GCC C++ Linker
g++ -o"CMMusic" ./Helper.o ./LrcMgr.o ./PlayerMgr.o ./PluginMgr.o ./UIMgr.o ./main.o -lcursesw -lpanelw -lmenuw -lpthread
/usr/bin/ld: cannot find -lcursesw
collect2: ld returned 1 exit status
make: *** [CMMusic] Error 1
:em06
可以把objects.mk里面的 -lcursesw 改成-lncursesw,但前提是需要安装libncursesw5-dev
gym216
帖子: 10
注册时间: 2008-06-08 8:54

Re: mplayer前端播放器CMMusic版本ver1.2(支持歌词,插件扩展)

#12

帖子 gym216 » 2008-12-26 19:16

:em02 太帅了,两个问题我都遇到了!楼主太捍了!!!
头像
eagle5678
帖子: 1865
注册时间: 2006-07-08 14:07

Re: mplayer前端播放器CMMusic版本ver1.2(支持歌词,插件扩展)

#13

帖子 eagle5678 » 2008-12-28 10:24

怎打开mp3 :em04
bargain685
帖子: 49
注册时间: 2008-12-08 18:12

Re: mplayer前端播放器CMMusic版本ver1.2(支持歌词,插件扩展)

#14

帖子 bargain685 » 2008-12-29 12:48

gym216 写了::em02 太帅了,两个问题我都遇到了!楼主太捍了!!!
两个问题都遇到? -_-? 没听懂,你是指行还是不行?
bargain685
帖子: 49
注册时间: 2008-12-08 18:12

Re: mplayer前端播放器CMMusic版本ver1.2(支持歌词,插件扩展)

#15

帖子 bargain685 » 2008-12-29 12:50

eagle5678 写了:怎打开mp3 :em04
需要自己编辑music.lst文件,把全路径写进去即可.通常是
ls /media/XXX/*.mp3 > music.lst
目前不支持单独打开一个文件.
能不能播放mp3,关键在mplayer(当然这是肯定能放的).
回复