关于我
 

xjpvictor's Blog
小老鼠,上灯台,两只耳朵竖起来

moc 继续上次播放


各种折腾·linuxscript

本文最后编辑于超过3737天以前,部分内容可能已经失效

moc的2.5.0alpha4引入了一些新的功能,使得继续上次播放成为可能。当然,原程序是没有这个功能的,需要用几个脚本。新版moc多了的功能包括queue和onsongchange。前一个能使用queue来插入playlist,后一个能在换歌的时候调用外部程序。所以自己写了两个脚本实现继续上次播放和换歌时显示提示的功能。

第一个脚本mymoc

#!/bin/bash

state=`pgrep mocp`
if [ -n "$state" ]; then
    mocp
    exit 0
else
    echo 0 > ~/.moc/firsttime
    lastsong=`cat ~/.moc/lastsong`
    mocp -S
    mocp -p
    mocp -q "$lastsong"
    mocp -f
    mocp -P
    mocp
    exit 0
fi

先检测,如果moc已经在运行,就只是打开client,如果没有运行,就运行server,开始播放playlist,然后读取~/.moc/lastsong中记录的上次播放的文件,用queue的形式插入,开始播放这首歌,然后暂停,因为不习惯自动播放。

第二个脚本onsongchange

#!/bin/bash

mocp -i | grep File | sed -e 's/File: //'> ~/.moc/lastsong

firsttime=`cat ~/.moc/firsttime`
if [ $firsttime = "1" ]; then
    notify-send "`mocp -i |grep -i "^State" | sed -e "s/^State: //"` `echo \ && mocp -i | grep -i "^File" | sed -e "s/.*\///" -e "s/.mp3//" -e "s/.MP3//" -e "s/.wma//" -e "s/.WMA//" -e "s/.ape//" -e "s/.APE//" -e "s/.flac//" -e "s/.FLAC//" -e "s/[0-9]\+[/./-]//g"`"
else
    echo 1 > ~/.moc/firsttime
fi
exit 0

这个脚本就是当换歌的时候把歌名写入~/.moc/lastsong以便下次调用。暂时moc不支持退出的时候写入。然后判断是不是刚开始运行所播放的第一首歌,如果不是就显示歌名。因为在mymoc调用moc的时候,先播放了playlist里的第一首歌,然后立即转到queue,也就是上次关闭时播放的歌,所以如果不这样就会连着显示两次歌名。

本文 "moc 继续上次播放" 由 K. Huang 首先发表于 xjpvictor's Blog 并以 CC BY-NC 4.0 许可证发布 © 2009
转载注明引用来源 https://blog.xjpvictor.info/2009/11/moc-last-position/


推广:本博客使用 Linode VPS,口碑好,信誉佳,快速稳定,性价比高

打赏我

评论

你的邮箱地址不会被公开。必填项以 * 标出

无意义或不相关评论将被删除

允许使用以下html标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

你可以上传文件,粘贴代码或长文至 Drop.it.r

本博客是言论不自由博客,评论只接受询问及赞同,不同观点请出门左转微博/发表于自己的博客。谢谢合作!

评论意味着你 同意 上传部分私人数据,包括邮箱和 IP, 这些数据不会被分享给第三方,不会用于商业用途或再推广用途。

更多相似文章