QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 786|回复: 8

用python控制xmms

[复制链接]
发表于 2004-7-30 09:42:05 | 显示全部楼层 |阅读模式

昨天发现的,但是没来得及写,今天补上。
本来想用python写一个像foobar样子的播放器,基本思想是调用其他播放软件如mpg123的那种。
后来找资料,怎么也找不到,突然在apt上发现了python2.3-xmms包,装上后在python里看了下帮助。
嘻嘻,可以用来控制xmms了。好了,废话少说,下来切入正题。
要用python控制xmms,需要安装python-xmms
然后,在python环境了,
[code:1]
>>> import os
>>> import xmms
[/code:1]
我们就可以正常使用了。
下面简单介绍一下方法:
启动xmms
[code:1]
>>> os.system("xmms &")           
[/code:1]
执行上面一条语句,系统会运行xmms,然后返回给你一个0,表示这是第一个xmms,当然如果你在xmms里设置了只能运行一个的话,无论你执行多少遍上面的语句,还是返回0。
弹出文件对话框
[code:1]
>>> xmms.eject(0)                 
[/code:1]
隐藏/显示eq均衡器窗口
[code:1]
>>> xmms.eq_win_toggle(0,0)
>>> xmms.eq_win_toggle(1,0)
[/code:1]
其中,第一个参数0表示隐藏,如果是1,那么就是显示,第二个参数0表示当前控制的是第1个xmms.
一下一个函数同。
隐藏/显示主窗口
[code:1]
>>> xmms.main_win_toggle(0,0)
>>> xmms.main_win_toggle(1,0)
[/code:1]
隐藏/显示列表
[code:1]
>>> xmms.pl_win_toggle(0,0)
>>> xmms.pl_win_toggle(1,0)
[/code:1]
接下来是最主要的功能了,播放,暂停,停止,退出。
想想这几个词的英文,就知道该怎么用了。
播放
[code:1]
>>> xmms.play(0)
[/code:1]
如果只有一个xmms,参数0也可以不写,下同。
暂停
[code:1]
>>> xmms.pause(0)
[/code:1]
再执行一下就是取消暂停。或者可以再执行一次播放。
停止
[code:1]
>>> xmms.stop(0)
[/code:1]
退出
[code:1]
>>> xmms.quit(0)
[/code:1]
好了,这贴就到这里,下贴再补充一些其他的有用的东西。
发表于 2004-7-30 09:51:12 | 显示全部楼层
不错啊
回复

使用道具 举报

 楼主| 发表于 2004-7-31 09:58:24 | 显示全部楼层
今天继续~
得到平衡值
[code:1]
>>> xmms.get_balance()
[/code:1]
如果声道不偏左也不偏右的话,将会返回0,向左为负,向右为正。
得到当前均衡器的值
[code:1]
>>> xmms.get_eq()
[/code:1]
以上一条命令将会得到当前均衡器的所有值,将会返回类似下面字符串
[code:1]
(-1.1102230246251565e-15, (-1.6000000238418579, 4.8000001907348633, 6.4000000953674316, 6.4000000953674316, 4.8000001907348633, -1.6000000238418579, -2.4000000953674316, -2.4000000953674316, -1.6000000238418579, -1.6000000238418579))
[/code:1]
得到均衡器上某段的值
[code:1]
>>> xmms.get_eq_band(0)
[/code:1]
以上命令将返回将返回均衡器上最低频率的值,括号中的参数可以从0-9中的一个,对应均衡器上的十个频率段。
得到均衡器preamp的值
[code:1]
>>> xmms.get_eq_preamp()
[/code:1]
得到当前播放歌曲的采样率,声道等信息
[code:1]
>>> xmms.get_info()
[/code:1]
将得到类似下面的信息
[code:1]
(128000, 44100, 2)
[/code:1]
得到当前音量值
[code:1]
>>> xmms.get_main_volume()
[/code:1]
得到当前歌曲已经播放的时间
[code:1]
>>> xmms.get_output_time()
[/code:1]
得到播放列表中某个文件的文件名
[code:1]
>>> xmms.get_playlist_file(0,0)
[/code:1]
括号中的第一个参数是想得到文件名的文件在当前播放列表中的索引值,第二个参数表示这是第一个xmms.
得到播放列表长度
[code:1]
>>> xmms.get_playlist_length()
[/code:1]
将返回一个数字,如果播放列表中有10首歌,将返回10
得到当前播放的文件在播放列表中的位置
[code:1]
>>> xmms.get_playlist_pos()
[/code:1]
将返回一个数字,第一是0,以此类推

晕,今天就写到这里了~
回复

使用道具 举报

发表于 2004-7-31 10:06:47 | 显示全部楼层
继续,应该死而后已嘛,鸭子   
回复

使用道具 举报

 楼主| 发表于 2004-8-2 16:26:20 | 显示全部楼层

再续

得到播放列表中指定条目的长度
get_playlist_title(index, session=0)
[code:1]
>>> xmms.get_playlist_time(0,0)
[/code:1]
以上函数是得到第一个xmms播放列表中第一首歌的长度
得到xmms当前使用的皮肤信息
get_skin(session=0)
[code:1]>>> xmms.get_skin()[/code:1]
将返回皮肤的路径和文件名。
得到版本号
[code:1]>>> xmms.get_version()[/code:1]
返回的并不是xmms的版本,估计是返回xmms和libxmms间通讯协议的版本。
得到音量信息
[code:1]>>> xmms.get_volume()
[/code:1]>>> xmms.is_main_win()

将返回类似下面的结果
(100, 100)                              #(左声道,右声道)
播放列表窗口是否可见
[code:1]>>> xmms.is_eq_win()
[/code:1]
1表示真,0表示假,一下类似
主窗口是否可见
[code:1]>>> xmms.is_main_win()
[/code:1]
是否处于暂停状态
[code:1]>>> xmms.is_paused()
[/code:1]
播放列表是否可见
[code:1]>>> xmms.is_pl_win()[/code:1]
是否处于播放状态
[code:1]>>> xmms.is_playing()
[/code:1]
是否开启重复播放
[code:1]>>> xmms.is_repeat()[/code:1]
xmms是否正在运行
[code:1]>>> xmms.is_running()[/code:1]
是否开启随机播放
[code:1]>>> xmms.is_shuffle()
[/code:1]

晕~
今天就这些~
回复

使用道具 举报

 楼主| 发表于 2004-8-3 17:31:59 | 显示全部楼层

再再续

跳到指定时间
jump_to_time(time, session=0)
time以毫秒计

播放文件
play_files(seq, session=0)
将清空列表并添加播放列表或url

添加文件
playlist_add(seq, session=0)

添加url
[code:1]playlist_add_url_string(string, session=0)[/code:1]

清空列表
[code:1] playlist_clear(session=0)[/code:1]

从列表删除
[code:1]playlist_delete(index, session=0)[/code:1]

插入到列表
[code:1]playlist_ins_url_string(string, pos, session=0)[/code:1]

跳到下一首
[code:1]playlist_next(session=0)[/code:1]

跳到前一首
[code:1]playlist_prev(session=0)[/code:1]

设置平衡
[code:1]set_balance(balance, session=0)[/code:1]

设置eq
[code:1] set_eq(preamp, seq, session=0)[/code:1]

设置eq段
[code:1]set_eq_band(band, gain, session=0)[/code:1]
回复

使用道具 举报

 楼主| 发表于 2004-8-4 19:29:38 | 显示全部楼层
设置eq_preamp
[code:1]set_eq_preamp(preamp, session=0)[/code:1]

设置主音量
[code:1]set_main_volume(volume, session=0)[/code:1]

指定播放位置
[code:1] set_playlist_pos(position, session=0)[/code:1]

指定皮肤
[code:1]set_skin(skin_file, session=0)[/code:1]

设置音量
[code:1]set_volume(left_volume, right_volume, session=0)[/code:1]

显示关于窗口
[code:1]show_about_box(session=0)[/code:1]

显示选项窗口
[code:1]show_prefs_box(session=0)[/code:1]

总是在最上
[code:1]toggle_aot(always, session=0)[/code:1]
always=0 or 1

是否重复播放
[code:1]toggle_repeat(session=0)[/code:1]

是否随机播放
[code:1]toggle_shuffle(session=0)[/code:1]


终于结束了,嚯嚯嚯~
回复

使用道具 举报

发表于 2004-8-4 22:18:30 | 显示全部楼层
呵呵,歇会儿罢...
回复

使用道具 举报

发表于 2004-8-24 17:23:58 | 显示全部楼层
感谢斑竹!收下了!!!
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-7 15:46 , Processed in 0.036532 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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