写了个Rhythmbox的插件以后才发现这方面的中文教程简直是0的状态(百度连鸟语的都不知道),介于我是python新手,C语言全部还给老师了,所以不敢说这篇文章是指南,权当这是中文关于Rhythmbox插件编写的0.5篇文章吧。具体的最好还要参考Rhythmbox官方的指南
++++++++++++++
示例的源代码
++++++++++++++
首先,想好一个插件名字吧
教程里,我就用「RB_notify」。
要清楚用python写Rhythmbox的插件机制其实很简单——写好两个文件就可以成个插件
RB_notify.rb-plugin和__init__.py
前者负责解释你这插件叫啥、作者是谁等,后者是程序的入口,把他们放到$HOME/.gnome2/rhythmbox/plugins/notify里面就可以运行了,很简单是吧。
翻翻notify.rb-plugin
[RB Plugin]
Loader=python
Module=RB_notify
IAge=1
Name=RB Plugin Example
Name[zh_CN]=RB插件例子
Description=This is an example of RB Plugin
Description[zh_CN]=这是个RB插件例子
Authors=Meng Zhuo
Copyright=2011 © Meng Zhuo
Website=http://mengzhuo.org/blog/
这个是插件描述文件,由于我们插件是python写的,所以前面的4个参数都不能修改,而Module后面的跟的是需要加载模块,这里和项目同名就好了。后面几个都不言自明了,所以很简单吧。光说你的插件是干啥的自然是不行,得用程序让Rhythmbox听话。
__init.py__程序登场
写过python程序的同学都清楚,大部分程序第一步是导入一定量的库,这样才能正常运行,我们的Rhythmbox程序也一样:
import rb
这个语句是必须的,因为这个库是Rhythmbox的缩写。其他的库像
- gconf(需要配置的话)
【教程】
- gtk(需要图形的话)教程
- gettext(推荐import,国际化用)教程同上
这里我们就只使用rb吧,这时候程序应该是这个样子的:
- __init__函数是入口函数,每次插件运行的时候都先运行一遍里面的程序,里面一般第一句是添加self为RB插件的类。
rb.Plugin.__init__(self)
- activate函数是插件启动的时候执行的程序,这里就用简单的print吧
- deactivate函数是插件关闭或者Rhythmbox退出的时候执行的程序,理论上之前创建了什么东西,就得销毁掉(用del命令),不赘述了。
检验成果的时候到了!
运行Rhythmbox -D RB_notify
打开插件栏,这时候就可以看见你的插件了。
启动插件后就会在刚才运行命令的终端里出现
(15:36:44) [0x6ea040] [RB_notify.activate] .gnome2/rhythmbox/plugins/RB_notify/__init__.py:15: Hello, This is a Example
做些有用的事
光是在终端里输出一些字符可不是什么有趣的事,所以要介绍RB牛X的地方,在于它的shell。在刚才的print后面添加
shell.props.shell_player.playpause(0)
这样,每次启动插件,这个RB就会暂停或者是播放。
当然这个shell没有这么简单,不只能控制播放、音量等,还能UI什么的,大家可以去他们的官网围观哈