折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

Totem,mplayer,sopcast,realplayer,bmp
头像
潇洒走一回
帖子: 735
注册时间: 2009-05-20 21:43

折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#1

帖子 潇洒走一回 » 2009-10-07 10:59

mocp的可贵之处在于它的后台控制功能...
输入mocp后,它会在交互模式下工作,按下q离开交互界面后仍然可以在其它地方输入命令控制,比如:
mocp -P #暂停
mocp -U #继续
mocp -f #下一曲
mocp -x #退出程序
mocp -p #执行后直接后台打开mocp并播放列表中的歌曲,不进入交互界面.
所以,就可以利用这些命令自定义后台热键,我利用了CCSM的command管理功能来实现了后台热键.
但是定义了之后有一点遗憾,一般支持热键的播放器中,播放和暂停都使用一个按钮,我把我的多媒体键中的播放和暂停按钮赋给了mocp -P(暂停),mocp -U(继续)就找不到理想的键了,于是决定绕一下,让它们都使用一个热键...方案如下:
在CCSM中定义按下[播放/暂停]按钮后,执行一个叫mocpP-U的脚本,然后让该脚本来决定执行P(暂停)还是U(继续).脚本内容如下:

代码: 全选

#!/bin/bash
#scriptname: mocpP-U,用来暂停&继续mocp播放音乐.通过多媒体快捷键控制.

#如果是第一次使用该脚本,将创建一个状态文件,并写入P(意为暂停)作为内容.
[ ! -f $HOME/.moc/PorU ] && touch $HOME/.moc/PorU && echo "P" > $HOME/.moc/PorU
##########################################################
state=`cat $HOME/.moc/PorU`
#检察$HOME/.moc/PorU文件内容,如果为P,下面就执行pause;为U,则执行continue.
if [ "$state" = "P" ]; then
	mocp -P #暂停播放
	echo 'U' > $HOME/.moc/PorU #每执行一次,状态都会改变.
	exit 0
elif [ "$state" = "U" ]; then
	mocp -U #接着刚才的继续播放.
	echo P > $HOME/.moc/PorU
	exit 0
else #可能数据被破坏过.
	echo "P" > $HOME/.moc/PorU #重置内容为P.
fi
把上面的脚本放在某个bin目录下,赋予可执行权,并把它绑定到某个快捷键.然后按一下那个键,音乐就暂停啦,再按一下相同的键,又继续啦,再按一下又可以暂停...以此类推...好惬意啊!!!终于实现了我的要求.
受到刚写的脚本的启发,我又想到一个方法可以让我变得更惬意:
在面板上放一个启动器,点击一下,开始播放音乐;在点击同一个启动器,变成了停止音乐.
就像下面这个可爱的按钮:
screenshot2.png
screenshot2.png (9.73 KiB) 查看 4398 次
方案跟上面一样,点击该面板图标执行一个叫mocpMymusic脚本,让它决定是打开还是停止.内容如下:

代码: 全选

#!/bin/bash
#scriptname: mocpMymusic
#特性:更加可控地播放我的音乐... 该脚本执行后将用mocp播放我的音乐,再执行一次将关闭我的音乐...以此类推.

#判断状态文件是否存在,否则创建一个,并写入"to-open"...
[ ! -f $HOME/.moc/openORclose ] && touch $HOME/.moc/openORclose && echo "to-open" > $HOME/.moc/openORclose
#######################################################
state=`cat $HOME/.moc/openORclose`
if [ "$state" = "to-open" ]; then
	mocp -p #打开mocp,同时自动播放列表中的音乐,
	lrcdis & #启用歌词显示, 见 http://code.google.com/p/lrcdis/
	##lrcdis必须要在后台执行,否则将导致下一句不能及时执行...
	echo "to-close" > $HOME/.moc/openORclose
elif [ "$state" = "to-close" ]; then
	mocp -x #退出mocp,同时修改状态文件,以便下次执行该脚本时,状态是"to open"
	echo "to-open" > $HOME/.moc/openORclose
else #如果状态文件里面是垃圾值(可能被意外修改),就给它一个to open吧...
	echo "to-open" > $HOME/.moc/openORclose
fi
现在可以惬意地点击按钮了,点击后不会出现界面的,自动在后台播放列表中的歌曲(前提是已经添加好播放列表了),对!!!这正是我想要的!音乐是用来听的,要界面干啥?有界面更加可控?我用mocp也很可控啊.我已经绑定好了快捷键啦,后台热键控制更加随意,不管何时,在操作那个窗口...都可以惬意地按下你熟悉的键,下一首、暂停。。。
头像
rhfcaesar
帖子: 2996
注册时间: 2005-11-17 15:45
来自: 湖北

Re: 折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#3

帖子 rhfcaesar » 2009-10-07 15:43

:em11

代码: 全选

枪杆子里面出政权
头像
nuanhuai
帖子: 7813
注册时间: 2009-03-10 13:04

Re: 折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#4

帖子 nuanhuai » 2009-10-07 16:14

代码: 全选

mocp -G
暂停,继续都是它.........
头像
rhfcaesar
帖子: 2996
注册时间: 2005-11-17 15:45
来自: 湖北

Re: 折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#5

帖子 rhfcaesar » 2009-10-07 17:34

moc-tray 也不错。

代码: 全选

枪杆子里面出政权
头像
潇洒走一回
帖子: 735
注册时间: 2009-05-20 21:43

Re: 折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#6

帖子 潇洒走一回 » 2009-10-07 17:42

nuanhuai 写了:

代码: 全选

mocp -G
暂停,继续都是它.........
羞愧中... :em03 我的英文不太好,看那个英文帮助文件(mocp -h)的时候有点费力...看来我的做了些无用功... :em03
不过它的设计也有点问题,既然mocp -G就代表暂停继续,还设计mocp -P 和mocp -U干啥用...
上次由 潇洒走一回 在 2009-10-07 17:47,总共编辑 1 次。
头像
photor
论坛版主
帖子: 11004
注册时间: 2008-04-26 12:41

Re: 折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#7

帖子 photor » 2009-10-07 17:47

有一个功能,别的播放器都有,但是mocp好像没有办法实现,那就是记住上次退出时播放到列表中的哪首歌,以便接着上次的那首歌播放。
头像
roylez
帖子: 1928
注册时间: 2005-10-04 10:59
来自: 上海

Re: 折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#8

帖子 roylez » 2009-10-07 17:51

photor 写了:有一个功能,别的播放器都有,但是mocp好像没有办法实现,那就是记住上次退出时播放到列表中的哪首歌,以便接着上次的那首歌播放。
我想应该是可以的。

像lz这样用脚本调用mocp的,完全可以在脚本里面退出之前记录下最后的歌,存到文件,下次开始的时候再从这首开始的。
弄个dropbox空间来备份文件或者做私人代码服务器
配置:[url]git://github.com/roylez/dotfiles.git[/url]
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info
头像
潇洒走一回
帖子: 735
注册时间: 2009-05-20 21:43

Re: 折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#9

帖子 潇洒走一回 » 2009-10-07 17:59

photor 写了:有一个功能,别的播放器都有,但是mocp好像没有办法实现,那就是记住上次退出时播放到列表中的哪首歌,以便接着上次的那首歌播放。
这个俺不需要,就不关心了...俺对播放器的功能要求不多,但是俺对细节要求特别苛刻:
基本功能要求: 能够随机重复地对一个预设的列表播放
细节要求:必须支持自动播放,即打开后不需要再去点击某首歌曲,audacious启动时加上-p参数自动播放列表中的音乐,mocp一样;
必须支持后台热键;
界面应该简洁,排除我不需要的冗余功能.这一点足以革掉banshee,rhythmbox...
头像
adam8157
帖子: 2794
注册时间: 2009-03-05 16:31
联系:

Re: 折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#10

帖子 adam8157 » 2009-10-07 18:10

mpd或许更适合楼主....
头像
photor
论坛版主
帖子: 11004
注册时间: 2008-04-26 12:41

Re: 折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#12

帖子 photor » 2009-10-07 18:26

潇洒走一回 写了:
photor 写了:有一个功能,别的播放器都有,但是mocp好像没有办法实现,那就是记住上次退出时播放到列表中的哪首歌,以便接着上次的那首歌播放。
这个俺不需要,就不关心了...俺对播放器的功能要求不多,但是俺对细节要求特别苛刻:
基本功能要求: 能够随机重复地对一个预设的列表播放
细节要求:必须支持自动播放,即打开后不需要再去点击某首歌曲,audacious启动时加上-p参数自动播放列表中的音乐,mocp一样;
必须支持后台热键;
界面应该简洁,排除我不需要的冗余功能.这一点足以革掉banshee,rhythmbox...
楼主和我有相同的癖好,就是不喜欢媒体库这样的冗余功能,我的歌曲都是用目录来井井有条地管理的 :em09
头像
adam8157
帖子: 2794
注册时间: 2009-03-05 16:31
联系:

Re: 折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#13

帖子 adam8157 » 2009-10-07 18:27

photor 写了:
adaml 写了:mpd或许更适合楼主....
mpd的客户端没有一个像mocp的交互界面这么简洁的 :em09
cli:ncmpc
gui:sonata
两个都超级简洁...

但是我只用mpc....
头像
photor
论坛版主
帖子: 11004
注册时间: 2008-04-26 12:41

Re: 折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#14

帖子 photor » 2009-10-07 18:30

adaml 写了:
photor 写了:
adaml 写了:mpd或许更适合楼主....
mpd的客户端没有一个像mocp的交互界面这么简洁的 :em09
cli:ncmpc
gui:sonata
两个都超级简洁...

但是我只用mpc....
都试过,还是不如mocp的两个版面都超级有用,所以……
头像
xjpvictor
帖子: 2837
注册时间: 2007-08-22 15:55
系统: Archlinux
来自: 新加坡
联系:

Re: 折腾了许久,mocp终于能高效智能自动地为我工作啦!!!

#15

帖子 xjpvictor » 2009-10-07 18:46

mocp不能放ape,有点郁闷
而且我也想要记住上次退出时候播的哪首歌
同样不喜欢媒体库
Entschuldigung. Ich habe keine ahnung.
Secure with PGP: gpg --recv-keys 0x68b6e3d8
Fingerprint: 5556 517C F52F E402 DDF5 5400 6D30 F13E 68B6 E3D8
Towards A Sustainable Earth: Print Only When Necessary
回复