喜讯:PPS for Linux 复活!
输入mocp后,它会在交互模式下工作,按下q离开交互界面后仍然可以在其它地方输入命令控制,比如:
mocp -U #继续
mocp -f #下一曲
mocp -x #退出程序
mocp -p #执行后直接后台打开mocp并播放列表中的歌曲,不进入交互界面.
所以,就可以利用这些命令自定义后台热键,我利用了CCSM的command管理功能来实现了后台热键.
但是定义了之后有一点遗憾,一般支持热键的播放器中,播放和暂停都使用一个按钮,我把我的多媒体键中的播放和暂停按钮赋给了mocp -P(暂停),mocp -U(继续)就找不到理想的键了,于是决定绕一下,让它们都使用一个热键...方案如下:
在CCSM中定义按下[播放/暂停]按钮后,执行一个叫mocpP-U的脚本,然后让该脚本来决定执行P(暂停)还是U(继续).脚本内容如下:
#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 [ 9.73 KiB | 被浏览 757 次 ]
方案跟上面一样,点击该面板图标执行一个叫mocpMymusic脚本,让它决定是打开还是停止.内容如下:
#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也很可控啊.我已经绑定好了快捷键啦,后台热键控制更加随意,不管何时,在操作那个窗口...都可以惬意地按下你熟悉的键,下一首、暂停。。。
作者: 潇洒走一回 发布时间: 2009-10-07
作者: photor 发布时间: 2009-10-07
作者: rhfcaesar 发布时间: 2009-10-07
作者: nuanhuai 发布时间: 2009-10-07
作者: rhfcaesar 发布时间: 2009-10-07
羞愧中... 我的英文不太好,看那个英文帮助文件(mocp -h)的时候有点费力...看来我的做了些无用功...
不过它的设计也有点问题,既然mocp -G就代表暂停继续,还设计mocp -P 和mocp -U干啥用...
最后由 潇洒走一回 编辑于 2009-10-07 17:47,总共编辑了 1 次
作者: 潇洒走一回 发布时间: 2009-10-07
作者: photor 发布时间: 2009-10-07
我想应该是可以的。
像lz这样用脚本调用mocp的,完全可以在脚本里面退出之前记录下最后的歌,存到文件,下次开始的时候再从这首开始的。
作者: roylez 发布时间: 2009-10-07
这个俺不需要,就不关心了...俺对播放器的功能要求不多,但是俺对细节要求特别苛刻:
基本功能要求: 能够随机重复地对一个预设的列表播放
细节要求:必须支持自动播放,即打开后不需要再去点击某首歌曲,audacious启动时加上-p参数自动播放列表中的音乐,mocp一样;
必须支持后台热键;
界面应该简洁,排除我不需要的冗余功能.这一点足以革掉banshee,rhythmbox...
作者: 潇洒走一回 发布时间: 2009-10-07
作者: adam8157 发布时间: 2009-10-07
mpd的客户端没有一个像mocp的交互界面这么简洁的
作者: photor 发布时间: 2009-10-07
这个俺不需要,就不关心了...俺对播放器的功能要求不多,但是俺对细节要求特别苛刻:
基本功能要求: 能够随机重复地对一个预设的列表播放
细节要求:必须支持自动播放,即打开后不需要再去点击某首歌曲,audacious启动时加上-p参数自动播放列表中的音乐,mocp一样;
必须支持后台热键;
界面应该简洁,排除我不需要的冗余功能.这一点足以革掉banshee,rhythmbox...
楼主和我有相同的癖好,就是不喜欢媒体库这样的冗余功能,我的歌曲都是用目录来井井有条地管理的
作者: photor 发布时间: 2009-10-07
mpd的客户端没有一个像mocp的交互界面这么简洁的
cli:ncmpc
gui:sonata
两个都超级简洁...
但是我只用mpc....
作者: adam8157 发布时间: 2009-10-07
mpd的客户端没有一个像mocp的交互界面这么简洁的
cli:ncmpc
gui:sonata
两个都超级简洁...
但是我只用mpc....
都试过,还是不如mocp的两个版面都超级有用,所以……
作者: photor 发布时间: 2009-10-07
而且我也想要记住上次退出时候播的哪首歌
同样不喜欢媒体库
作者: xjpvictor 发布时间: 2009-10-07
而且我也想要记住上次退出时候播的哪首歌
同样不喜欢媒体库
虽然我对记住上次播放歌曲没有强烈要求,不过能实现更好啦...roylez说这个不难,不过我纯属菜鸟,搞不好...roylez已经搞定过类似的功能啦,看他发的这篇贴子(http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=69447)找点灵感吧...sed命令我还用不好,准备有时间再看.......
作者: 潇洒走一回 发布时间: 2009-10-07
羞愧中... 我的英文不太好,看那个英文帮助文件(mocp -h)的时候有点费力...看来我的做了些无用功...
不过它的设计也有点问题,既然mocp -G就代表暂停继续,还设计mocp -P 和mocp -U干啥用...
E文确实不咋的,帮助里没啥特难的单词嘛。
作者: kakashan 发布时间: 2009-10-18
基本功能要求: 能够随机重复地对一个预设的列表播放
viewtopic.php?f=74&t=236602
不到 100 行的 Python3+对 mocp 的两个小小设置。想要预设的列表播放而不是 mocp 的,请看其附件。
作者: lilydjwg 发布时间: 2009-10-31
基本功能要求: 能够随机重复地对一个预设的列表播放
viewtopic.php?f=74&t=236602
不到 100 行的 Python3+对 mocp 的两个小小设置。想要预设的列表播放而不是 mocp 的,请看其附件。
我以前说的能够随机重复地对一个预设的列表播放
mocp本身已经实现了啊,你可以解压查看/usr/share/doc/moc/examples/config.example.gz 它就是moc的配置文件示例,默认情况下家目录下是没有moc的配置文件的,可以新建一个~/.moc/config文件配置你的mocp的工作方式...内容就可以参照示例文件...
Repeat = no
# Turn on shuffle.
Shuffle = no
把上面的no改为yes就可以开启随机并重复播放功能了...
至于播放列表功能,也实现的很完美啊!
我的音乐全都放在$HOME/music/下面,执行下面的命令:
下面的命令就是我享受惬意时使用的
# 打开moc以随机重复方式播放列表中的音乐
当然我是用一个叫Mocp(大写的M)的脚本来简化我对mocp的控制的
作者: 潇洒走一回 发布时间: 2009-10-31
Repeat = no
# Turn on shuffle.
Shuffle = no
把上面的no改为yes就可以开启随机并重复播放功能了...
Shuffle是随机播放的意思?
作者: lilydjwg 发布时间: 2009-10-31
作者: xjpvictor 发布时间: 2009-10-31
这个我唯一没看懂的选项原来就是我想要的
作者: lilydjwg 发布时间: 2009-10-31
我记得直接按下组合键就可以切换 [STEREO] [NET] [SHUFFLE] [REPEAT] [NEXT] 这几个选项的,前几天试过,记得好像是alt+tab来着,但事实证明,不是这个……
作者: pityonline 发布时间: 2009-11-01
怎么会是 Alt-tab 呢。你按 h 看看就知道了。
我这里
NEXT -- X
SHUFFLE -- S
REPEAT --- R
作者: lilydjwg 发布时间: 2009-11-01
怎么会是 Alt-tab 呢。你按 h 看看就知道了。
我这里
NEXT -- X
SHUFFLE -- S
REPEAT --- R
你回贴时我正在看h,嘿嘿……
作者: pityonline 发布时间: 2009-11-01
作者: bones7456 发布时间: 2009-11-01
我也是呵。 不过最近才知道Shuttle是随机播放的意思。
作者: lilydjwg 发布时间: 2009-11-01
作者: _Pilgrim 发布时间: 2010-11-19
而且我也想要记住上次退出时候播的哪首歌
同样不喜欢媒体库
虽然我对记住上次播放歌曲没有强烈要求,不过能实现更好啦...roylez说这个不难,不过我纯属菜鸟,搞不好...roylez已经搞定过类似的功能啦,看他发的这篇贴子(http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=69447)找点灵感吧...sed命令我还用不好,准备有时间再看.......
作者: 潇洒走一回 发布时间: 2009-10-07
羞愧中... 我的英文不太好,看那个英文帮助文件(mocp -h)的时候有点费力...看来我的做了些无用功...
不过它的设计也有点问题,既然mocp -G就代表暂停继续,还设计mocp -P 和mocp -U干啥用...
E文确实不咋的,帮助里没啥特难的单词嘛。
作者: kakashan 发布时间: 2009-10-18
基本功能要求: 能够随机重复地对一个预设的列表播放
viewtopic.php?f=74&t=236602
不到 100 行的 Python3+对 mocp 的两个小小设置。想要预设的列表播放而不是 mocp 的,请看其附件。
作者: lilydjwg 发布时间: 2009-10-31
基本功能要求: 能够随机重复地对一个预设的列表播放
viewtopic.php?f=74&t=236602
不到 100 行的 Python3+对 mocp 的两个小小设置。想要预设的列表播放而不是 mocp 的,请看其附件。
我以前说的能够随机重复地对一个预设的列表播放
mocp本身已经实现了啊,你可以解压查看/usr/share/doc/moc/examples/config.example.gz 它就是moc的配置文件示例,默认情况下家目录下是没有moc的配置文件的,可以新建一个~/.moc/config文件配置你的mocp的工作方式...内容就可以参照示例文件...
Repeat = no
# Turn on shuffle.
Shuffle = no
把上面的no改为yes就可以开启随机并重复播放功能了...
至于播放列表功能,也实现的很完美啊!
我的音乐全都放在$HOME/music/下面,执行下面的命令:
下面的命令就是我享受惬意时使用的
# 打开moc以随机重复方式播放列表中的音乐
当然我是用一个叫Mocp(大写的M)的脚本来简化我对mocp的控制的
作者: 潇洒走一回 发布时间: 2009-10-31
Repeat = no
# Turn on shuffle.
Shuffle = no
把上面的no改为yes就可以开启随机并重复播放功能了...
Shuffle是随机播放的意思?
作者: lilydjwg 发布时间: 2009-10-31
作者: xjpvictor 发布时间: 2009-10-31
这个我唯一没看懂的选项原来就是我想要的
作者: lilydjwg 发布时间: 2009-10-31
我记得直接按下组合键就可以切换 [STEREO] [NET] [SHUFFLE] [REPEAT] [NEXT] 这几个选项的,前几天试过,记得好像是alt+tab来着,但事实证明,不是这个……
作者: pityonline 发布时间: 2009-11-01
怎么会是 Alt-tab 呢。你按 h 看看就知道了。
我这里
NEXT -- X
SHUFFLE -- S
REPEAT --- R
作者: lilydjwg 发布时间: 2009-11-01
怎么会是 Alt-tab 呢。你按 h 看看就知道了。
我这里
NEXT -- X
SHUFFLE -- S
REPEAT --- R
你回贴时我正在看h,嘿嘿……
作者: pityonline 发布时间: 2009-11-01
作者: bones7456 发布时间: 2009-11-01
我也是呵。 不过最近才知道Shuttle是随机播放的意思。
作者: lilydjwg 发布时间: 2009-11-01
作者: _Pilgrim 发布时间: 2010-11-19