[iPod touch]曲再生の一時停止、再開、状態取得等ができるiPod touch用コマンドラインアプリケーションmmpctl
昨日のwifictlに引き続き、既に野良リポジトリには登録しておいたmmpctlについて解説します。
これはwifictl同様iPod touch / iPhone用コマンドラインアプリケーションで、MobileMusicPlayer Controllerの略でmmpctlです。
ミュージック(MobileMusicPlayer)の再生/一時停止をコマンドラインからコントロールできます。
凝ったことはできません。
再生状態と一時停止状態との遷移、再生状態のレポート、現在再生曲情報の標準出力への書き出しのみできます。
主に、Erica's Utilitiesに収録されているplayaudioのフォローのために作りました。
playaudioは引数に与えた音声ファイルを再生してくれますが、再生前にミュージック(MobileMusicPlayer)を一時停止状態にします。
しかし、その後で再生を再開することができません。だから、コマンドラインからの再生再開の手段が欲しくて作ったのです。
これを作るに当たっては、以下のソースを参考にしました。またLyrics.appでおなじみnoviさんのエントリも参考にしました。
http://thebends.googlecode. com/svn/trunk/iphone-apps/music-player/
インストール
いつもの野良リポジトリからどうぞ。
[iPod touch]野良ビルドのバイナリを置いたiPod touch / iPhone向けInstaller.appリポジトリ
「Utilities > mmpctl」です。
無保証です。
ソースコードは開示請求があれば公開します。
mmpctlの使い方
使い方: mmpctl [オプション]
例) # mmpctl -t
-p 再生。
-s 一時停止。
-t 再生時は一時停止へ、一時停止時は再生状態へ遷移します。
-i 現在再生曲情報を標準出力に書き出します。 (タブ区切り)
-f 現在再生曲のファイルへのパスを標準出力へ書き出します。
-g 再生状態を数値で返します。
-h このヘルプを表示します。
-gオプションの返り値
0 停止中
1 再生中
2 一時停止中
応用例1
flite、Erica's Utilitiesと組み合わせて使うと面白いことができます。
fliteは野良リポジトリの「Utilities > flite」にあります。
以下のスクリプトは、現在時刻を英語で読み上げるものです。
音楽を再生していた場合は一時停止し、読み上げた後で再生を再開します。
#!/bin/shPATH=/opt/iphone/bin:\
/var/root/bin:\
/bin:/sbin:/usr/bin:\
/usr/local/bin:/usr/sbin:$PATHresult=`mmpctl -g`
if [ ${result} -eq 0 -o ${result} -eq 2 ]; then
play_flag=0
else
play_flag=1
finow=`date +%H:%M`
flite -t "`flite_time ${now}`" -o /tmp/now.wav
playaudio /tmp/now.wavif [ ${play_flag} -eq 1 ]; then
mmpctl -p
sleep 1
mmpctl -p
fi
これをcronに登録すると、定期的に時刻を読み上げてくれて、とてもアレゲです。
cronへの登録は「crontab -e」でできます。viが立ち上がるので、例えば以下のように登録します。
上記のスクリプトは、「/var/root/bin/jihou.sh」に保存したと仮定します。
*/30 * * * * /var/root/bin/jihou.sh
30分ごとに実行する設定です。つまり、30分ごとに時刻を読み上げてくれます。
標準状態ではcronが動いていないかもしれません。
Community Sourceをインストールし、Installer.appからUlctlをダウンロードしてきて、「com.apple.cron」をloadしてみてください。
応用例2
「mmpctl -f」で、現在再生中の曲のファイルのパスが取得できます。
以下のようにすれば、現在演奏中のファイルをカレントディレクトリにコピーできます。
cp `mmpctl -f` .
応用例3
「mmpctl -i」で、現在再生中の曲の曲名、アルバム名、アーチスト名が取得できます。
項目間はタブ区切りです。
# mmpctl -i Magnets Idealism Digitalism # mmpctl -i | awk 'BEGIN{FS="\t"};{printf("%s\n%s\n%s\n", $1, $2, $3)}' Magnets Idealism Digitalism
しかし書き出せたところで、今のところ使い道が無いですかね。
以下のようにすれば、現在演奏中のファイルを、曲名でリネームしながらカレントディレクトリにコピーできますが、ちょっと危ないかも。
# cp `mmpctl -f` `mmpctl -i | awk 'BEGIN{FS="\t"};{print $1}'`.mp3
« [iPod touch]WiFiをON/OFFするiPod touch用コマンドラインアプリケーションwifictlとWiFiSwitch.app | Main | [iPod touch]MobileSafariの履歴から選んでhtmlをダウンロードできるダウンローダHistoryDL.app »
Recent Comments