|
|
上次安装了mplayer 后gmplayer程序一直报错,老说找不到skin。试了n种方法后终于找到原因,最好方法还是去读代码。自己加一点输出一下就明白了,哈哈。
原来 mplayer 的skin没有 扩展名 程序报错 说 xxx/xxx/default/skin 找不到,原来是指xxx/xxx/default 目录下找不到mplayer skin的主文件 “skin” ,我还以为是在 xxx/xxx/default/skin 目录下找不到 skin的所有文件呢。哈哈
一些小问题去读代码其实很容易,比如这个问题只要在程序中搜索
“[skin] file“的关键字,然后就可以找到
这种错误的宏定义
#define MSGTR_SKIN_SkinFileNotFound "[skin] file ( %s ) not found.\n"
然后再搜索MSGTR_SKIN_SkinFileNotFound,很快就可以定位到gui/skin/skin.c 中的 skinRead 函数
int skinRead( char * dname )
{
unsigned char tmp[255];
unsigned char * ptmp;
unsigned char command[32];
unsigned char param[256];
int c,i;
setname( skinDirInHome,dname );
if ( ( skinFile = fopen( fn,"rt" ) ) == NULL )
{
setname( skinMPlayerDir,dname );
if ( ( skinFile = fopen( fn,"rt" ) ) == NULL )
{
setname( skinDirInHome_obsolete,dname );
if ( ( skinFile = fopen( fn,"rt" ) ) == NULL )
{
setname( skinMPlayerDir_obsolete,dname );
if ( ( skinFile = fopen( fn,"rt" ) ) == NULL )
{
mp_msg( MSGT_GPLAYER,MSGL_STATUS,MSGTR_SKIN_SkinFileNotFound,fn );
return -1;
}
}
}
}
很明显,错误是这东西报出来的。mp_msg(MSGT_GPLAYER,MSGL_STATUS,MSGTR_SKIN_SkinFileNotFound,fn );
fn 就是皮肤文件本身的地址,不是什么目录,哈哈。总算搞明白了。 |
|