LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 664|回复: 1

关于mplayer 一直报错,找不到skin文件的原因,一些小问题去读代码要快得多,哈哈

[复制链接]
发表于 2006-7-4 20:04:41 | 显示全部楼层 |阅读模式
上次安装了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 就是皮肤文件本身的地址,不是什么目录,哈哈。总算搞明白了。
发表于 2006-7-5 00:44:42 | 显示全部楼层
高见,学习.......
回复 支持 反对

使用道具 举报

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

本版积分规则

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