LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: bargain685

mplayer控制台前端播放器CMMusic版本更新(支持歌词,插件扩展)

[复制链接]
发表于 2008-12-10 20:55:29 | 显示全部楼层
期待加入emacs
回复 支持 反对

使用道具 举报

发表于 2008-12-10 22:10:50 | 显示全部楼层
支持字符界面。一些建议:
很遗憾地没看到比较规范的功能介绍。比如很多人最关心的是否支持utf-8,瞄了一眼代码有做编码转换的部分,没有仔细看。
如果是GPL的许可,要把GPL许可文本放进去……
makefile全放在子目录比较诡异,代码倒是可以放子目录。
生成的2进制文件和IDE的project file没有必要release出来,pre-compiled的可以提供binary package。
编译好的程序很大,看一下gcc开关。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-11 17:42:24 | 显示全部楼层
Post by jcolinzheng;1922239
支持字符界面。一些建议:
很遗憾地没看到比较规范的功能介绍。比如很多人最关心的是否支持utf-8,瞄了一眼代码有做编码转换的部分,没有仔细看。
如果是GPL的许可,要把GPL许可文本放进去……
makefile全放在子目录比较诡异,代码倒是可以放子目录。
生成的2进制文件和IDE的project file没有必要release出来,pre-compiled的可以提供binary package。
编译好的程序很大,看一下gcc开关。



感谢你的关注.
因为开发的目的,1为自用,2为推荐大家用,加上工作之余开发,时间有限,所以功能介绍是少了些.以后会规范些.
有关UTF8的支持.程序本身是支持的,不存在转码问题,那部分转码代码是将GBK的歌词转成UTF8用的.
GPL许可,我也是刚接触,还不知道何为GPL文本 -_-~ ,其实我真的很想GPL规范,至少感觉象点牛人啊,呵呵.
makefile是eclipse生成的,所以没有放在子目录,我习惯了VC的工程结构,所以代码是放在工程目录下的.
IDE的project file是为了让别人用eclipse打开方便.
编译的程序本身是Debug的,是大了点.(相对啦,现在几百K能叫大么,又不是极限编程).
用户可以用eclipse打开,选择Release编译个小些的.
回复 支持 反对

使用道具 举报

发表于 2008-12-11 18:04:14 | 显示全部楼层
埃,你們這麽這麽喜歡字符界面的??
都啥年代了,懷戀字符界面有時候就像懷戀小米加步槍
回复 支持 反对

使用道具 举报

发表于 2008-12-12 01:27:19 | 显示全部楼层
Post by mexi;1921682
恩,一个好消息,这个程序运行起来了,当然也有一些小问题
我先说说怎么运行起来的好了:
首先我把原来的那一份全部删除了;因为是在我的用户目录下,并且mplayer已经安装并且已经确认是可以播放的,所以我认为条件应该都是具备的。
然后解压了从源码网下载的包,解压以后进入Debug目录make,make完成以后发现Debug目录和bin目录下都有CMMusic(然而我之前运行了Debug下的那个!):进入bin目录,首先需要修改CMMusic的运行权限,生成的文件权限是444(亦即只读的),所以我就把它chmod成555(亦即只读且可执行的)了;
./CMMusic,会提示fifomo文件权限不够,这是因为CMMusic在bin目录下生成了fifomo,fifomi文件,而他们的权限都是444(不可写,只出不进@_@|||),同样,chmod成666(亦即可读可写)。
好了,程序到此部已经可以运行起来了,然而他不能直接读取文件而只能读取lst文件,很邪恶啊。。。
使用命令:
cd ~/Download/CMMusic/bin/
ls /home/username/Music/*.mp3 > music.lst
./CMMusic  (程序会自动读取bin目录下的music.lst文件,并且只会读取这个文件。。。另一个很邪恶的地方啊)
好了,程序即可运行起来了。

对于歌词的支持:
应该说经过验证,程序是可以自动到mp3文件所在目录找歌词文件的,看截图;但是对于有些歌词却找不到,不知道是什么原因,我再研究一下好了,比如那首eyes on me就不行。
权限问题我认为是作者(楼主)在root下建立的那两个文件,
除了你的解决方法外,我在使用中也尝试过用root帐户使用,完全正常。
但是我遇到的bug是,歌词显示断行有问题,
比较长的行被分成两行后第二行的前几个字是乱码。
此外希望能够在播放中强制设定一些参数,比如采样率等,
因为mplayer和xine的引擎在有的软声卡上会出现爆音,
通过调整这些参数能得到缓解。
另外想问问,那个背景颜色是怎么改的?
回复 支持 反对

使用道具 举报

发表于 2008-12-12 01:58:12 | 显示全部楼层
做了一个小脚本,生成媒体文件列表。
下载后将扩展名改为.list.sh,
然后再chmod +x CMusic.list.sh
希望能有些用处。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-12 09:58:04 | 显示全部楼层
Post by realasking;1922712
权限问题我认为是作者(楼主)在root下建立的那两个文件,
除了你的解决方法外,我在使用中也尝试过用root帐户使用,完全正常。
但是我遇到的bug是,歌词显示断行有问题,
比较长的行被分成两行后第二行的前几个字是乱码。
此外希望能够在播放中强制设定一些参数,比如采样率等,
因为mplayer和xine的引擎在有的软声卡上会出现爆音,
通过调整这些参数能得到缓解。
另外想问问,那个背景颜色是怎么改的?


谢谢关注。我不是root用户下运行,这个问题我会注意的。
可以试图写道配置文件里,让用户可以自己调节播放参数,原来没想这么复杂。
断行的问题,通常为没有判断断处是否为中文,这个细节确实有。
你的shell我也看下如何融进去。
颜色我怀疑是他改的控制台设置吧
回复 支持 反对

使用道具 举报

发表于 2008-12-12 17:17:40 | 显示全部楼层
今天尝试编译v1.1的,结果在我的机器上遇到以下问题:
Building target: CMusic
Invoking: GCC C++ Linker
g++  -o"CMusic"    -lcursesw -lpanelw -lmenuw -lpthread
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld 返回 1
make: *** [CMusic] 错误 1

然后我试着在Debug的上层目录执行:
[root@realasking CMMusic]# gcc -o *.cpp
输出是:
LrcMgr.cpp: In member function ‘bool CLrcMgr:oadFile(const char*)’:
LrcMgr.cpp:36: 错误:‘strchr’在此作用域中尚未声明
LrcMgr.cpp:45: 错误:‘memset’在此作用域中尚未声明
LrcMgr.cpp: In member function ‘float CLrcMgr::GetPos(const char*)’:
LrcMgr.cpp:103: 错误:‘atof’在此作用域中尚未声明
UIMgr.cpp: In destructor ‘virtual CUIMgr::~CUIMgr()’:
UIMgr.cpp:32: 错误:‘free’在此作用域中尚未声明
UIMgr.cpp: In member function ‘virtual int CUIMgr::OnMsg(const char*, unsigned int, long unsigned int)’:
UIMgr.cpp:38: 错误:‘strcmp’在此作用域中尚未声明
UIMgr.cpp: In member function ‘void CUIMgr::Command(int)’:
UIMgr.cpp:480: 错误:‘strlen’在此作用域中尚未声明
UIMgr.cpp:502: 错误:‘strlen’在此作用域中尚未声明
UIMgr.cpp: In member function ‘void CUIMgr::CreateModeMenu()’:
UIMgr.cpp:529: 错误:‘calloc’在此作用域中尚未声明
UIMgr.cpp: In member function ‘void CUIMgr::CreateListMenu(const char*)’:
UIMgr.cpp:567: 错误:‘memset’在此作用域中尚未声明
UIMgr.cpp:579: 错误:‘calloc’在此作用域中尚未声明
UIMgr.cpp: In member function ‘void CUIMgr:estroyListMenu()’:
UIMgr.cpp:606: 错误:‘free’在此作用域中尚未声明
UIMgr.cpp: In member function ‘bool CUIMgr::CheckAutoNext()’:
UIMgr.cpp:677: 错误:‘srand’在此作用域中尚未声明
UIMgr.cpp:681: 错误:‘rand’在此作用域中尚未声明
UIMgr.cpp: In member function ‘virtual int CUIMgr::SendMgrMsg(const char*, unsigned int, long unsigned int)’:
UIMgr.cpp:735: 错误:‘strcmp’在此作用域中尚未声明

希望bargain685看看。
不过包里自带的那个已经编译好的是能用的。
我的系统是fedora 10,gcc 4.3.2
回复 支持 反对

使用道具 举报

发表于 2008-12-12 20:06:52 | 显示全部楼层
编译和权限的问题解决了,
编译问题是因为楼主的程序中少加了三个头文件,
如下操作即可:
  #include   <string.h>  
  #include   <stdio.h>
  #include   <stdlib.h>
权限问题只要修改 PlayerMgr.cpp,在第18行插入两行:
        system("chmod 777 fifomi");
        system("chmod 777 fifomo");
另外还有一个Err.log权限问题,
有两种改法:
第一种:在第23行将>Err.log改为>>Err.log,
                然后在第24行后插入一行:
                system("chmod 777 Err.log");
第二种:在第22行后面加入一行:
                system("rm -rf Err.log");
                而其他的关于Err.log的东西不动。
重新编译后就能解决。

歌词断行,屏幕颜色和播放器细节调整还是非常热切的期望楼主能解决啊~
回复 支持 反对

使用道具 举报

发表于 2008-12-12 20:46:25 | 显示全部楼层
发现一个bug,--------------------------这个不是CMMusic的BUG,抱歉
播放中如果暂停,再次启动的时候,
会有两个mplayer进程,
播放器始终处于快进状态(其中一个进程始终在快进,另一个在播放,声音混在一起),
从而无法正常播放。
----------------这个问题不是CMMusic的BUG,是Fedora解码器的问题,
将Fedora 10的mplayer的解码器全部删除,然后手动安装这些解码器软件就正常了。

另外还希望楼主能增加音量调节,
最好能在界面上用鼠标调整,
呵呵。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表