xmms安装配置工作记录

来源:互联网 发布:歼6无人机知乎 编辑:程序博客网 时间:2024/05/15 06:05
一:简介
       linux下的音频播放器不多
XMMS, XMMS2, BMP,Amarok, BMPX……。
       XMMS:(X MultiMedia System)是Linux下优秀的音频播放器,专门为X-Window设计。XMMS以
强大的播放功能、多变的皮肤和各具神通的插件在众多的Linux播放软件里占据重要地位,完全可以Windows
下的Winamp相媲美。
       XMMS2:被分成了两部分,Daemon和clients。XMMS2会作为一 个后台服务而存在,而界面部分由
clients来完成。clients可以是命令行模式也可以是gui模式,甚至做成插件的形势结合到其他的软件中。
       Amarok:类iTunes的界面,良好的分类管理,并且支持iPod。
       BMP:( is a multimedia player that currently uses a skinned user interface
based on Winamp 2.x skins. It was forked from XMMS)XMMS可以认为是一个划时代的音频播放
器。但在当今gtk+2盛行的年代已惭显老态(XMMS今后仍只基于gtk+>=1.2.x)。bmp 是sourceforge.net
上创建不到一年的时间,它最初是由XMMS发展起来的。
       X11amp是一个完全基于Linux(X window)的图形化媒体播放器。从外观及功能上来说,X11amp播
放器同Windows下的Winamp基本相同,同时,它也结合了Linux自身的一些特点
平台: linux内核2.6.15-1.2054_FC5   主机类型 i686-pc-linux-gnu
X Multi Media System (XMMS)(1.2.10)
二:任务细分
    1:xmms源代码及相关库函数安装 ;
    2:播放列表显示汉化,标题显示汉化,菜单自定义汉化;
    3:?显示歌词(问题:两个插件安装顺利,但不让配制或运行不稳);
    4:皮肤下载安装,简单修改皮肤(不包括修改布局);
    5:可视效果插件安装试验;
    6:下载安装配置增强音响效果插件(问题:立体声插件配制);
    7:各音频插件安装试验(能放mp3,wav,ogg,wma和modules,midi)(问题:avi,rm);
    8:播放列表原理设置;
    9:修改xmms原代码设置布局(问题:如何修改);
    10:FM插件(支持什么硬件);
    11:功能键列表,如何更改,键如何复用(问题:键复用);
    12:cd自动播放;
    13:游戏杆控制,手柄控制,摇控器控制(问题:摇杆/控制器配制,手柄插件);
三:过程
1: xmms源代码及相关库函数安装

1.1:下载
XMMS 1.2.10下载地址:
http://www.xmms.org/download.php

ttp://havardk.xmms.org/dist/xmms-1.2.10/

1.2:安装
解压gunzip xmms-1.2.10.tar.gz;tar xvf xmms-1.2.10.tar
1.2.1: ./configure –prefic=/usr
若提示
”checking for GLIB - version >= 1.2.2... no
*** The glib-config script installed by GLIB could not be found
*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the GLIB_CONFIG environment variable to the
*** full path to glib-config.
configure: error: *** GLIB >= 1.2.2 not installed - please install first ***”

原因为”the glib-config script is used in the 1.2.x version of glib/gtk. Your 
application need so be compiled against gtk 1.2, NOT gtk 2.0.x.ou need to install
the development packages for gtk 1.2 (either from sources or a package)You can
install both versions (1.2 and 2.x) with no problem as 2.0 uses the script pkg-
config.”
所以方法1:下载安装glib与gtk即可(地址:
ftp://ftp.gtk.org/pub/gtk/v1.2
http://www.escomposlinux.org/lfs-es/blfs-es-5.0/general/glib.html)若出现“无法
将所有权改为 uid 2181,gid 2181: 不允许 的操作”,用方法2
方法2:在linux安装盘上找到glib/gtk安装即可(
compat-gcc-32-c++-3.2.3-55.fc5.i386.rpm
compat-gcc-32-3.2.3-55.fc5.i386.rpm
glib-devel-1.2.10-18.2.2.i386.rpm
glib-java-devel-0.2.3.0.20060301.rh1-1.i386.rpm
gtk+-devel-1.2.10-50.i386.rpm
gtkhtml-1.1.9-12.i386.rpm
gtkhtml2-devel-2.6.3-1.2.1.i386.rpm
gtkhtml-devel-1.1.9-12.i386.rpm
gtksourceview-devel-1.6.0-1.i386.rpm)

执行./configure –prefic=/usr
结果为Configuration:
Install path:               /usr
Build OSS plugin:           yes
Build esd plugin:           yes
Build Solaris plugin:       no
Build BSD Sun plugin:       no
Build ALSA plugin:          yes
Build mikmod plugin:        no(若提前安装mikmod则显示yes)
Build Ogg Vorbis plugin:    yes
Build OpenGL plugins:       yes
Pthread flag:               -lpthread
Use one plugin dir:         no
Allow user plugin dir:      yes



1.2.2: make
若提示”GTK+>=1.2.2 not install……”
同上下载或在linux安装盘上找到gtk安装即可。
若再有错提示如下:
ir.c:19: error: static declaration of 'keepGoing' follows non-static
declaration
ir.h:53: error: previous declaration of 'keepGoing' was here
ir.c:22: error: static declaration of 'irapp_thread' follows non-static declaration
ir.h:52: error: previous declaration of 'irapp_thread' was here
解决方法1打开./general/ir/ir.h 把
extern pthread_t irapp_thread;
extern gboolean keepGoing;
两句注释掉
解决方法2用低版gcc

1.2.3:make install
会安装xmms, xmms-config, gnomexmss, wmxmms.
   Xmms-config:其他程序用这个脚本来连接到xmms的库和头文件.
   Gnomexmms:这是一个GNOME桌面环境下的小程序,可以嵌入 GNOME 面板,通过它,你可以启动和控
制xmms.
   Wmxmms:wmxmms 是一个在 Window Maker 窗口管理器下用的小程序. 用这个程序,你可以启动和
控制xmms.
   1.3:运行
       在终端运行xmms若出现“/usr/local/lib/xmms/Input/libmpg123.so: cannot restore
segment prot after reloc: 权限不够”说明虽有libmpg123.so但还不能放mp3。
可插放wav,ogg格式歌曲
中文界面。
Inputins未使用字体集,X字体,插放清单字体为“-adobe-helvetica-bold-r-*-*-10-*”,主
窗口为“-adobe-helvetica-medium-r-*-*-8-*”。
标题为“%p - %t”
输入插件为:


输出插件为:

其它插件:







文件包括:       
       ~/.xmms/config    Users xmms configuration.
       ~/.xmms/xmms.m3u Default playlist usually loaded on startup.
       ~/.xmms/gtkrc     Users set of xmms-specific GTK config settings.
                         Options such as widget color and fonts sizes can be
                         set here.
       ~/.xmms/menurc    Users set of keybindings.
       ~/.xmms/Skins, ${prefix}/share/xmms/Skins
                         Default locations where XMMS should look for skin-
                         files.
       ~/.xmms/Plugins   Location of user installed plugins.

2:播放列表显示汉化,标题显示汉化;菜单自定义汉化
2.1 :播放列表显示汉化,标题显示汉化
在选项-首选项-字体中全打对勾
然后设字体
方法1:选song ti
方法2:选fangsongti
方法3:-*-*-medium-r-normal-16-*-*-*-*-*-gb18030.2000-0
方法4:-*-*-medium-r-normal-16-*-*-*-*-*-gb2312.1980-0
方法5:-*-*-*-*-*-*-16-*-*-*-*-*-gbk-0
方法6:-adobe-helvetica-medium-r-normal-*-12-*-*-*-p-*-iso10646-1,-misc-
simsun-medium-r-normal-*-12-*-*-*-c-*-gbk-0
要显示多语言可用“,”隔开。

效果如图:


在选项-首选项-标题中设成%f,并在各输入插件中配置标题成%f
2.2:菜单自定义汉化
2.2.1 : 修改po/zh_CN.po文件中如
“msgid "Tone Generator %s"
msgstr "音调生成器 %s"”
等类似语句把“音调生成器”改成想要的语句。
2.2.2: msgfmt --statistics zh_CN.po -o zh_CN.gmo
2.2.3 : 把zh_CN.gmo放入/usr/share/locale/zh_CN/LC_MESSAGES/或者
/usr/locale/share/locale/zh_CN/LC_MESSAGES/下改成zh_CN.mo重启xmms即可。
第二步后也可以重新编译xmms。
想近一步了解Open Source Software Internationalization 简体中文化计划 请浏览相关网
站。如:http://i18n.linux.net.cn/;
3:显示歌词 (xlyrics,singit,lyrics)
3.1: lyrics
下载地址已打不开。
3.2: xlyrics
下载xlyrics 地址:
http://myget.sourceforge.net/xlyrics/xlyrics-0.4.6.tar.gz
解压,./configure,make,make install(在/usr/local/lib/xmms/General下安装
libxmms_xlyrics.a, libxmms_xlyrics.so, libxmms_xlyrics.la)即可。
Make时出现
“internal.c: 在函数 ‘locale2utf8’ 中:
internal.c:22: 警告:隐式声明与内建函数 ‘strdup’ 不兼容
……
conf.c:60: 警告:隐式声明与内建函数 ‘strlen’ 不兼容
conf.c:63: 警告:隐式声明与内建函数 ‘strstr’ 不兼容
conf.c:76: 警告:隐式声明与内建函数 ‘strdup’ 不兼容
……”
但仍能通过。
运行不稳定,自己关闭,不能下载歌词,也不能显视。虽是中国人(小锁)开发可问题也太多了。
3.3: singit 
下载xmms-singit-0.08地址
http://nchc.dl.sourceforge.net/sourceforge/xmms
-
singit/xmms-singit-0.0.8.tar.bz2
或者:
http://prdownloads.sourceforge.net/xmms-singit/xmms-singit-0.0.8.tar.bz2
make时出错:“singit_id3lib_wrapper.h:24:17: error: id3.h: No such file or
directory
singit_id3lib_wrapper.h:34: error: expected ')' before '*' token”
等错误。可能是某个软件库版本太旧了。
下载id31lib(地址:
http://prdownloads.sourceforge.net/id3lib/id3lib-
3.8.3.tar.gz?use_mirror=nchc)安装,再编译singit问题依旧。 
下载新版本singit地址:
http://stud.fbi.h-da.de/~glogow/index.html
安装顺利,但根本不能运行。
4:皮肤下载安装,简单修改皮肤(不包括修改布局)
       4.1: 皮肤下载安装
       地址:
www.gnome-look.org 或 http://www.xmms.org/skins.php 或 
download.pchome.net/skins/winamp(兼容winamp皮肤)
       不用解压放在/usr/share/xmms/skins下所有用户共享,或放在~/.xmms/skins/单用户使用。
       效果如图:


       4.2: 自定义皮肤      
4.2.1修改bmp文件
改图片包括
avs.bmp, balance.bmp, Cbuttons.bmp ,Eq_ex.bmp ,Eqmain.bmp, 
Main.bmp, mb.bmp, Monoster.bmp, numbers.bmp ,Playpaus.bmp, Pledit.bmp,
Posbar.bmp Shufrep.bmp Text.bmp, Titlebar.bmp, volume.bmp。
       每个bmp文件的坐标可参看winamp的相应文件

http://download.pchome.net/skins/teach/winamp/teach1.htm
)。
       如posbar.bmp 宽度 : 307 高度 : 10


相关项目
起始 X
起始 Y
宽度
高度
播放位置滑杆
248
0
29
10
播放位置滑杆 (压下)
278
0
29
10
播放位置滑动栏
0
0
248
10

       4.2.2:修改PLEDIT.TXT文件

Normal
在清单上歌曲的前景颜色。(歌曲文字颜色)
Current
在清单上歌曲的前景颜色。(正播放的歌曲文字颜色)
NormalBG
播放清单的背景颜色。
SelectedBG
在播放清单上,所选择项目的背景颜色。
Font
播放清单上所要使用的字型名称。
       4.2.3修改频谱分析器颜色
       编译前修改xmms-1.2.10/xmms/skin.c文件中的
”static const gint skin_default_viscolor[24][3] =
{
       {9,34,53},
       {10,18,26},
       ……
}”一段设默认值。
       编译后修改各皮肤文件夹下的VISCOLOR.TXT文件。
       这个文件文件可以设定频谱分析器颜色。文件内共分24 行,每一行都代表不同的作用,三个数字代
表 RGB 值,中间以逗号区分,在行的最后可以以 // 加以注解。

1
背景颜色
2
第二背景颜色 - 制作有网状的效果
3
顶端 (第 1 ) 颜色在频谱分析器
4
第 2 颜色在频谱分析器
5
第 3 颜色在频谱分析器
6
第 4 颜色在频谱分析器
7
第 5 颜色在频谱分析器
8
第 6 颜色在频谱分析器
9
第 7 颜色在频谱分析器
10
第 8 颜色在频谱分析器
11
中间 (第 9 ) 颜色在频谱分析器
12
第 10 颜色在频谱分析器
13
第 11 颜色在频谱分析器
14
第 12 颜色在频谱分析器
15
第 13 颜色在频谱分析器
16
第 14 颜色在频谱分析器
17
第 15 颜色在频谱分析器
18
底部 (第 16 ) 颜色在频谱分析器
19
内部 (第1) 颜色在波形图
20
第 2 颜色在波形图
21
第 3 颜色在波形图
22
第 4 颜色在波形图
23
外部 (第 5 ) 颜色在波形图
24
分析器颠峰

       4.2.4:修改region.txt
       这个文件是用来作区域透明的,就是在 winamp/xmms 做部份透明.
可以加入注解,但首先必须在行的前面加上分号 (;)。
       分三个部份 : [Normal] 标准、[WindowShade] 一线模式和 [Equalizer] Eq等化器,
每个部份又有两个区段设定 : NumPoints 和 PointList 。
       NumPoints 这里要填入数字,代表在 PointList 里面点的数目。
如果有超一个以上的区域,就要以逗号 ( , ) 来区分。
PointList 点的列表名单。二个数字为一点,前为 X 轴,后为 Y 轴,每个点都是以逗号 ( , ) 来区分,
所以容易混乱;所有点围起来的区域代表看的见的,也就是非透明区。
       例如: 你可以把这个文件抓回去试看看 ; 透明的区域在各个角落,四个角落都变成圆弧状 
[Normal] NumPoints=84 PointList=0,13,1,13,1,10,2,10,2,8,3,8,3,7,4,7,4,6,5,6,5,5,6,5,6,4,7,4,7,3,8,3,8,2,1
0,2,10,1,13,1,13,0,262,0,262,1,264,1,264,2,266,2,266,3,268,3,268,4,269,4,269,5,270,
5,270,4,272,4,272,5,273,5,273,7,272,7,272,9,273,9,273,11,274,14,275,14,275,102,274,
102,274,105,273,105,273,107,272,107,272,109,271,109,271,110,270,110,270,111,269,111
,269,112,268,112,268,113,267,113,267,114,265,114,265,115,262,115,262,11
6,12,116,12,115,10,115,10,114,8,114,8,113,7,113,7,112,5,112,5,111,4,111,4,109,3,109
,3,108,2,108,2,106,1,106,1,104,0,104 
[WindowShade] 
NumPoints=36 PointList=5,14,5,13,3,13,3,12,2,12,2,11,1,11,1,9,0,9,0,5,1,5,1,3,2,3,2,2,3,2,3,1,5,
1,5,0,270,0,270,1,272,1,272,2,273,2,273,3,274,3,274,5,275,5,275,9,274,9,274,11,273,
11,273,12,272,12,272,13,270,13,270,14 
[Equalizer] 
NumPoints=84P
ointList=0,13,1,13,1,10,2,10,2,8,3,8,3,7,4,7,4,6,5,6,5,5,6,5,6,4,7,4,7,3,8,3,8,2,10
,2,10,1,13,1,13,0,262,0,262,1,264,1,264,2,266,2,266,3,268,3,268,4,269,4,269,5,270,5
,270,4,272,4,272,5,273,5,273,7,272,7,272,9,273,9,273,11,274,14,275,14,275,102,274,1
02,274,105,273,105,273,107,272,107,272,109,271,109,271,110,270,110,270,111,269,111,
269,112,268,112,268,113,267,113,267,114,265,114,265,115,262,115,262,116,12,116,12,1
15,10,115,10,114,8,114,8,113,7,113,7,112,5,112,5,111,4,111,4,109,3,109,3,108,2,108,
2,106,1,106,1,104,0,104 


5:可视化效果插件安装试验:
       自带3个可视效果插件OpenGL 光谱分析器(libogl_srectrum.so),柔化范围1.2.10
(libbscope.so),简单光谱分析器1.2.10(libsanalyzer.so).
       也可下载,地址:
http://xmms.org/plugins.php?category=vis
或者:http://ftp.iasi.rdsnet.ro/linux/xmms/plugins/Visualization/
       若xmms用./configure –prefix=/usr则此也用./configure –prefix=/usr
否则xmms检测不到插件。安完后看看readme文件学会如何配置。

6:下载安装配置音响效果插件
       自带3个效果插件回音插件1.2.10(libecho.so)可设置声音的延迟,反馈等;消除人声插件
1.2.10(libvoice.so)可消除歌曲中的人声;超强立体声插件1.2.10(libstereo.so).这三个音响效果插
件效果都不错。
       插件地址:
http://xmms.org/effect.php
       下载 Spatializer StreamFX ,QSound iQ,4Front Technologies OSS/3D 以增强音效。
看其说明
Spatializer StreamFX 
XMMS users can now experience the same Spatializer StreamFX 
enhancements available for WinAmp and provides a very compelling audio package
for the growing Internet Appliance market. StreamFX provides rich 3D
audio, enhanced bass support and support for headphone/speaker audio 
adjustment, adding rich, immersive audio to the already powerful XMMS player.
QSound iQ 
IQ for Linux utilizes QSound's 3D audio technology to stretch the sound
outside the physical location of the speakers - creating an immersive virtual
surround sound field. Users will be able to enhance mono and low bit-rate 
MP3s that are streamed over the Internet. Laptop users will also be able to 
get highly enhanced stereo sound with iQ for Linux.
4Front Technologies OSS/3D 
OSS/3D utilizes 4Front's proprietary 3D audio technology to add
bass /spatialization, 3D surround and enhance the sound played by XMMS. OSS/3D
provides a DSP engine to manipulate the sound in many different ways. In short, 
OSS/3D provides the capabilities of QSound and Spatializer and provides additional
functionality like Speaker correction and Virtual Subwoofers. OSS/3D can greatly 
improve MP3s, RealAudio, CD Audio, Ogg and pretty much anything that is played via
XMMS. 

       安装方法:1:解压. 2: cd name. 3: ./xminstall
安装在effect文件下

7:各音频插件安装试验
        音频插件安装调试
       XMMS安装完默认可播放wav,ogg等格式歌曲。要安装其它音频插件才可播放各种格式音频。
       音频格式分三种1是对声音进行采样的声音文件如mp3,wav,wma; 2是记录演奏乐器指令的midi文件
如.mid,.rmi; 3是modules即模块文件即能放乐器指令又能放采样数据,对硬件依赖性小,如.MOD, S3M, 
XM, IT, AMS, DBM, DMF, DSM, FAR, MDL, MED, MTM, OKT, PTM, STM, ULT, UMX, MT2, PSM等

       7.1: modules插件
       播放模块文件的插件有MIKMOD(要在安xmms之前安libmikmod),DUMB-XMMS,ModPlugXMMS.
       MIKMOD下载地址:
http://www.ibiblio.org/pub/linux/apps/sound/libs/libmikmod-
3.1.10.tar.gz
       注意:安装完后要重新安装xmms.

       7.2: MIDI插件安装调试(安装Timidity Player/libmid.so)
       
AMIDI-Plug插件http://www.develia.org/files/amidi-plug-0.5.tar.bz2
       
XMMS Midi插件 http://ban.joh.cam.ac.uk/~cr212/xmms-midi/xmms-midi-0.03.tar.gz
或者http://dl.fkb.wormulon.net/xmms-midi/xmms-midi-0.03.tar.gz
或者http://download.chinaunix.net/down.php?id=23541&ResourceID=11963
       
Awe Midi插件http://benge.mybravenet.com/programming/xmms-awemidi-
plugin.tar.gz
       安完后看看readme文件中如何用此插件。
       注意: 前面是prefix=/usr则此处prefix=/usr/lib/而不是prefix=/usr
              当然也可编译makefile文件。

       7.3: mp3音频插件安装调试
       mpg123或mp3插件可放mp1,mp2,mp3
       下载地址 1 
http://havardk.xmms.org/dist/xmms-1.2.7-rh8-rh9-rpm/xmms-mpg123
-
1.2.7-21.i386.rpm
       下载地址 2 www.gurulabs.com/files/xmms-mp3-1.2.7-13.p.i386.rpm
       若xmms源代码及相关库函数安装正确则会自动安装上MPEG Layer 1/2/3播放器插件。

       7.4: wma音频插件安装调试
       地址:
http://mcmcc.bat.ru/xmms-wma/       
http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=mydown&did=3720       
http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=mydown&did=2087
       注意安装:make ,make install不用configure已存在makefile可修改makefile文件中的
prefix等参数。

       ?7.5: realaudio音频插件安装调试
       rmxmms 可放RA,RM,RAM
       rmxmms地址:
http://ftp.iasi.rdsnet.ro/linux/xmms/plugins/rmxmms/
                     或:
http://www.cc.jyu.fi/~hastrup/linux/tweaks/rmxmms/
              或:
http://mahe.inrialpes.fr/linux/rpm2html/search.php?query=rmxmms
              或:
http://ftp.cc.ntut.edu.tw/cgi-bin/file.pl?path=%2FOS%2FLinux%
2Fpackages%2FX%2Fsound%2Fxmms%2Fxmms%2Fplugins%2Frmxmms
       rpm包:
ftp://rpmfind.net/linux/falsehope/pub/rmxmms/rmxmms-0.4
-
1rh71.i386.rpm
       注意需要
* Real System SDK 
·         RealPLayer 7 or 8. Not needed to compile, only to play.
       否则:configure出错:“configure: error: *** /usr/local/rmasdk_6_0 not found
***
if you have the SDK installed elsewhere
please use –with-realsdk-dir=realsdk_path”
       ?7.5: avi音频插件安装调试
       avi插件可放DixV,asf,avi,mp4c3等
       地址:http://freshmeat.net/redir/avi-xmms/545/url_tgz/avi-xmms-1.2.3.tar.gz
或者: 
ftp://ftp.mizi.com/pub/mizios/1.5beta/SRPMS/xmms-avi-0.5-1mz.src.rpm
或者:
ftp://ftp.sunet.se/pub/multimedia/xmms/plugins/avi-xmms/
或者:
ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/
make出错:“.../../include/wine/pe_image.h:60: error: expected specifier-qualifier-
list before 'pushl1'
pe_image.c: In function 'PE_FindExportedFunction':
pe_image.c:178: warning: incompatible implicit declaration of built-in
function 'printf'

       ?7.6其它
       flac地址:
http://dir.filewatcher.com/d/Mandrake/9.1/i586/Sound/flac-xmms-
1.1.0-1mdk.i586.rpm.40368.html
       或者:
http://flac.sourceforge.net/download.html
       注意需要NASM >= 0.98.30

       ape地址:
http://www.linuxfans.org/nuke/software/xmms%B5%C4APE%B2%E5%BC%
FE/xmms-ape.tar.gz
注意:先安装 NASM(“you need NASM to compile the asm source.”)再安装mac-3.99-u4-
b2.tar.gz 然后装xmms-mac-0.3.0.tar.gz
       aac放苹果的aac
       Qt-XMMS放苹果的mov
       Ogg Vorbis放ogg(默认安装)
       AdPlug插件可放AdLib 
       CDDA Paranoia放CDDA(默认安装一个libcdaudio)
       
8:播放列表原理及设置
       在.xmms/config文件中与       播放列表有关的语句为
no_playlist_advance=FALSE
playlist_x=100
playlist_y=125
playlist_width=525
playlist_height=319
playlist_shaded=TRUE
playlist_visible=FALSE
playlist_transparent=FALSE
playlist_position=116

9:修改xmms原代码设置布局
       原代码修改设计到1屏蔽掉相应按钮功能;2屏蔽掉相应菜单项;3重设置各按钮坐标及大小;4重设整
体布局;5固定住各窗口位置及大小;6设置出一定风格,功能简单,介面漂亮。
       预计效果左上侧可视效果窗口vis,右上侧播放列表playlist,下侧功能键toolbar。各窗口位置大
小固定,功能键少只有上一曲,播放,暂停,停止,下一曲,选择文件,循环,最小化,关閟。
       winamp和mplayer修改xml文件可更改布局;而且图片格式支持png(winamp如何自定制皮肤文档下

http://www.winamp.com/nsdn/winamp/skinning/modern/tutorials/Skinning20Tutorial.pdf
)。但xmms却没有这种xml文件,所以布局不能编译后变。(BMP也不支持XML文件也不能编译后变布局)

9.1:最小化时在任务栏显示的图片
更改xmms-1.2.10/xmms/xmms_mini.xpm图片。
9.2:about对话框
       9.2.1修改成自已的(有点缺德
改xmms/about.c文件中static const char *translators[] 和 static const char
*credit_text[] 改成自己的,或者改po文件改成自己的。
直接注释掉xmms/about.c中的295到299行,不让关于对话框显图片。
更改xmms-1.2.10/xmms/xmms_logo.xpm(xmms关于图片)图片。
       修改xmms_logo.xpm时报错
“about.c: 在函数 ‘show_about_window’ 中:
about.c:299: 错误:‘xmms_logo’ 未声明 (在此函数内第一次使用)
about.c:299: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
about.c:299: 错误:所在的函数内只报告一次。)”)。
       9.2.2不让其显示     
       第一步注释掉xmms/about.c中的269行void show_about_window(void)(/*……*/),
       第二步还要让右键对话框中不显about对话框,注释掉main.c中的267行{N_("/About XMMS"), 
NULL, mainwin_general_menu_callback, MAINWIN_GENERAL_ABOUT, ""}
       第三步修改main.c中的 mainwin_create_widgets函数中mainwin_about语句的可修改
大小成0,或坐标很大不让单击面板时出现关于对话框,注意不要注释掉此行,否则运行时有错。
       第四步注释掉main.c中的mainwin_general_menu_callback函数中的//case 
MAINWIN_GENERAL_ABOUT:
show_about_window();
break;
三句。 
9.3:去掉右键菜单或移动右键菜单相应项(注意相应改po文件)
       注释或去掉xmms-1.2.10/xmms/main.c相应语句可去掉或移动右键菜单相应项。
       右键菜单有主菜单mainwin_general_menu_entries,选项菜单
mainwin_options_menu_entries,曲名菜单mainwin_songname_menu_entries,可视化菜单
mainwin_vis_menu_entries。
       修改大体步骤是修改enum,修改menu_entries,修改menu_callback
       9.3.1去掉单项(注意注释掉不要删掉否则多或少一行要修改po文件)
       例如9.2的修改about对话框菜单。
       又如注掉主菜单的“播放文件”项。
第一步注掉main.c文件中的252行中的MAINWIN_GENERAL_PLAYFILE。
第二步注掉main.c文件中的mainwin_general_menu_entries中269行的{N_("/Play File"), "L",
mainwin_general_menu_callback, MAINWIN_GENERAL_PLAYFILE, ""}一句。
或改成{N_(""), "L", mainwin_general_menu_callback, 
MAINWIN_GENERAL_PLAYFILE, ""}
       9.3.2移动菜单项(若涉及到po文件要修改)
       如移动主菜单/播放/前一首(/playback/play)到主菜单/前一首(/playback)
则修改 mainwin_general_menu_entries[]中280行{N_("/Playback/Previous"), "Z", 
mainwin_general_menu_callback, MAINWIN_GENERAL_PREV, ""},改成{N_
("/Previous"), "Z", mainwin_general_menu_callback, MAINWIN_GENERAL_PREV, ""},
即可。
       又如移动/曲名菜单/文件信息(songname_menu)到/主菜单/文件信息(general_menu) 则移动
mainwin_songname_menu_entries[]相应项到mainwin_general_menu_entries[]即可。
       9.3.3去掉整个菜单
       如去掉曲名菜单(songname_menu)注掉mainwin_songname_menu_entries[]内部和
mainwin_songname_menu_callback内部。或者只注掉mainwin_songname_menu_entries[]内部。

9.4修改整体大小
    先修改xmms/defskin/main.xpm图片大小,注意用gedit工具改回名称。
再修改xmms/main.c中mainwin_create(void)函数,mainwin_create_gtk函数,draw_main_window函数和xmms/skin.c中init_skins函数中的有关宽,高。

9.5修改xmms/main.c中函数mainwin_create_widgets,屏蔽掉一些功能键,修改一些键坐标。(按
如下更改只要重画main.bmp, volume.bmp, postbar.bmp即可,其它图片保持不变)
       


9.5修改xmms/playlistwin.c中函数playlistwin_create_widgets屏蔽掉一些播放列表功能键.
清空playlist_slider.c中的create_playlistslider函数不显滚动条
清空playlist_popup.c中的playlist_popup函数不显5个弹出菜单。


9.5修改titlebar(让其有无焦点都一样)
       方法1:注掉main.c中933行draw_mainwin_titlebar()函数。
       方法2:注掉main.c中908行draw_mainwin_titlebar()函数内部。
9.5修改默认配置
       修改main.c中的read_config()和save_config()可更改默认配置
       cfg.save_window_position = FALSE;//不让其保存位置。
       cfg.player_x = 0;
       cfg.player_y = 0;
       cfg.playlist_x = 600;
       cfg.playlist_y = 0;
       cfg.playlist_width = 300;
       cfg.playlist_height = 600;
增加
       cfg.playlist_font="-isas-fangsong ti-medium-r-normal-*-*-160-*-*-c-*-
gb2312.1980-0";
       cfg.use_fontsets=TRUE;
       cfg.shuffle=FALSE;
       cfg.repeat=TRUE;
       //cfg.generic_title_format="%f";//没有定义 generic_title_format 
       cfg.skin="/root/.xmms/Skins/myself";//默认皮肤
       cfg.enabled_vplugins="libogl_spectrum.so";//想用那个可视化插件就写那个。
       

       output_plugin=/usr/lib/xmms/Output/libOSS.so
9.6其它:
更改xmms-1.2.10/xmms/util.c可更改播放列表添删歌曲文件/目录等。
更改xmms-1.2.10/xmms/textbox.c中的TextBox *create_textbox可更改与滚动文本相关的设置。
更改xmms-1.2.10/xmms/tbotton.c中TButton *create_tbutton函数可改shufrep.bmp坐标与大小,包括rand,rep, pl,eq。
更改xmms-1.2.10/xmms/svis.c可改可视化位置(些文件也计算乘余时间)。
………………………………
9.2.3更改坐标
       更改xmms-1.2.10/xmms/sbotton.c中的SButton *create_sbutton函数可改“关于”对话框
的坐标与大小。

7:更改xmms-1.2.10/xmms/playstatus.c中的PlayStatus *create_playstatus函数可改playpaus
的坐标与大小。

8:更改xmms-1.2.10/xmms/pbutton.c中的PButton *create_pbutton_ex即播放,暂停等坐标及大
小。

9:更改xmms-1.2.10/xmms/monostereo.c中的MonoStereo *create_monostereo函数可改MONOSTER
的坐标与大小。

10:更改xmms-1.2.10/xmms/menurow.c中的MenuRow *create_menurow函数可改menurow的坐标与大
小。


10:FM插件(支持什么硬件)     
       xmms-FMRadio is a plugin with which you can use xmms as fm-radio
receiver。 要有Radio Tuner card。 
       地址:(
http://silicone.free.fr/xmms-FMRadio/xmms-FMRadio-1.4.tgz)
              (
http://silicone.free.fr/xmms-FMRadio/xmms-FMRadio-1.5.tgz)
       解压之后make,make install(若xmms安装时用了—prefix=/usr,则改makefike文件中的
prefix语句,或PREFIX=/usr make install)
       若用FMRadio-1.4则根据make时警告的相应行把如“if (cfgfile = xmms_cfg_open_file
(filename))”改成if ((cfgfile = xmms_cfg_open_file(filename)) != NULL),把如“printf
( "Cannot open %s %ld\n", radio_cfg.device, errno );”改成“printf( "Cannot open 
%s %ld\n", radio_cfg.device, (long)errno);”注意不要改成“printf( "Cannot open 
%s %d\n", radio_cfg.device, errno );”
       使用方法:
* the first way to uses it is to open an url or a file named "Radio 98200.fmr" 
where 98200 is the frequency of the radio you which to listen to in kHz.
·         the second is to open as an url or a file with the name you want and then edit
the "file info" to scan for a radio, edit it's name...

11:功能键列表,如何更改,键如何复用
11.1功能键列表 : 
       全局的:

        z                   上一曲
        x                   播放
        c                   暂停
        v                   停止
        b                   下一曲
        l                   播放文件
        j                   跳至文件
        r                   重复播放
        s                   乱序播放
        Shift + l           播放目录
        Control + l         播放位置
        Control + p         选项
        Control + v         可视化插件对话框
        Control + r         时间剩余
        Control + a         置顶
        Control + w         窗空阴影模式
        Control + d         双倍大小模式
        Control + e         容易移动
        Control + j         跳至时间
        Control + z         播放清单开始
        Control + n         不允许播放清单快进
        Control + 3         文件信息
        Control + Alt + w   均衡器窗空阴影模式
        Shift + Control + w 播放清单窗空阴影模式
        Alt + w             隐藏/显示主窗口
        Alt + e             隐藏/显示播放列表窗口
        Alt + g             隐藏/显示均衡器
        Alt + s             皮肤选择窗口

      主窗口:

        Arrow key up        音量向上 2%
        Arrow key down      音量向下 2%
        Arrow key right     前跳5秒钟
        Arrow key left      后跳5秒钟

      播放列表:                  

        Arrow key up        播放列表的上一曲
        Arrow key down      播放列表的上一曲
        Delete              删除
        Page Up             向上翻页
        Page Down           向下翻页
        Home                第一页
        End                 最后一页
        Enter               播放
        Insert              插入歌曲
        Shift + Insert      插入目录
        Alt + Insert        插入url

      均衡器:

        Arrow key up        音量向上 2%
        Arrow key down      音量向下 2%
        Arrow key right    平衡向右 4%
        Arrow key left      平衡向左4%
       11.2功能键如何更改 
       编译前修改xmms-1.2.10/xmms/main.c文件,如修改首选项功能键由control+p改成control+h,
则修改“{N_("/Preferences"), "P", mainwin_options_menu_callback,
MAINWIN_OPT_PREFS, ""},”一句成“{N_("/Preferences"), "H", 
mainwin_options_menu_callback, MAINWIN_OPT_PREFS, ""},”。
       编译后可以修改.xmms/menurc,如修改“;(menu-path "/Preferences" "")”一句
成”;(menu-path "/Preferences" "u")”则两文件修改结果为preferences功能键
为两个control+H和control+u。

12cd自动播放
       打开“可移动驱动器和介质的首选项”--“多媒体”设置即可。
13:游戏杆控制,手柄控制,摇控器控制
       13.1:自带一个插件“摇杆控制1.2.10”       
       13.2:自带一个“IRman红外控制1.2.10”
       13.3:Sony RM-X2S XMMS driver
       用 Sony RM-X2S控制xmms.
       下载及介绍请看:
http://llg.cubic.org/tools/sonyrm/


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/2620/showart_331628.html
0 0