git clone https://github.com/kernelhcy/DeaDBeeF-MPRIS-plugin.git
得到源码包
然后进入DeaDBeeF-MPRIS-plugin文件夹, 依次输入命令
autogen.sh
./configure
这一步应该都没有问题, 要是缺了依赖包的话按照提示去安装就行了
重点在make上
正常情况下会出现错误1:
mpris.c:19:31: fatal error: deadbeef/deadbeef.h: No such file or directory
原因:
缺少deadbeef.h这个文件
解决方法:
方法1:去http://sourceforge.net/projects/deadbee ... ecommended下载deadbeef源码包
如果之前没在root下装过插件的话, 将deadbeef源码包中的deadbeef.h复制到/usr/include/deadbeef/ (没有这个目录的话就新建)
如果之前已经在/usr/lib/deadbeef/下安装了插件的话那就复制到/usr/lib/deadbeef/即可.
方法2:安装deadbeef-devel包
继续make, 会出现错误2:
mpris.c: In function 'mpris_start':
mpris.c:58:9: error: 'g_thread_init' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:259) [-Werror=deprecated-declarations]
mpris.c:62:5: error: 'g_thread_create' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:100): Use 'g_thread_new' instead [-Werror=deprecated-declarations]
原因: 新的Glib中, g_thread_init, g_thread_create两个操作线程的指令均已废弃
解决方法:
在DeaDBeeF-MPRIS-plugin的目录下找到mpris.c并用文本编辑器打开, 搜索mpris_start, 然后修改为如下内容
代码: 全选
static gint mpris_start()
{
if(!g_thread_supported()){
//g_thread_init(NULL);
debug("Init the thread...");
}
//GError *err = NULL;
server_thread_id = g_thread_new("MPRIS", server_thread, NULL);
if(server_thread_id == NULL){
//debug("Create MPRIS thread error. %d:%s", err -> code, err -> message);
//g_error_free(err);
return -1;
}
return 0;
}
这次应该就会成功了
如果懒得自己修改的, 这里有patch:
https://build.opensuse.org/package/view ... fbe3d2bf7c

然后就是老套路了
mkdir ~/.local/lib/deadbeef/
sudo cp /usr/lib/deadbeef/* ~/.local/lib/deadbeef/



祝各位使用愉快!
PS: 此插件使用的GDBus也不能保证进程安全, 在官方版本的GDbus上运行有相当大几率会导致deadbeef启动崩溃.这个只能等待更新,目前没有完美解决方案!
ubuntu 12.10
deadbeef 0.5.6
DeaDBeeF-MPRIS-plugin 2.1
测试通过 (本人的Gdbus是修改过的.....不具有参考价值)