ネットラジオを簡単に聞く
qshdlgスクリプトの勉強
7月1日の日記に書いたとおりZPlayerのプレイリストからの再生が上手くいかない(ぴろさんのkino2 0.4.2p20でもダメだった)ので、yaktyさんのqshdlgを使ってGUIな環境でリストからURLを選択してmplayerを直接起動するような簡単なランチャープログラムを書いてみました。
qshdlgをインストールして、下記のスクリプトをEUCコードで/home/QtPalmtop/bin/netradioとして保存、chmod +x、適当にホーム画面設定アイコン登録します。URLリストは、/home/zaurus/Documents/netradio.lstに書いておきます。
ブラウザにOperaを使用している場合はネットラジオのページの再生ボタン等をペンで長押ししてメニューからCopy link Addressを選択すればURLがクリップボードにコピーされるので、これをペーストするだけで比較的簡単に登録できると思います。
http://……/xxx.asx mms://……/xxx.wma mms://……/xxx.mp3 http://……/xxx.asf
URLを選択してOKで再生開始、stop選択で停止です。一回で停止しない場合はしつこくstop選択です。mplayerの再生停止の方法が良くわからないのでプロセスをkillしてますけど、もっとスマートな方法はないものか。。。
(追加)HKさんにコメントいただいたkillallを使用する方法だと停止失敗しないみたいです。スクリプト修正しました。
(さらに追加)asxファイルからmms://〜を抜き出すのが面倒なのでHKさんのようにwget使って自動でさせるようにしました。
LinuZau ToolBox - qshdlg
http://tbox.jpn.org/wiki/linuzau/wiki.cgi?qshdlg
#!/bin/sh export QSHDLG_APP=netradio INPUT=/var/spool/qshdlg/input_$QSHDLG_APP OUTPUT=/var/spool/qshdlg/output_$QSHDLG_APP CONTROL=/var/spool/qshdlg/control_$QSHDLG_APP LIST=/home/zaurus/Documents/netradio.lst MPLAYER=/home/QtPalmtop/bin/mplayer TMPFILE=/home/zaurus/Documents/netradio_$$ qshdlg custom -C message -A -f lcfont -t "netradio" -c eucJP -M & while [ ! -p $CONTROL ] do done echo "URLリスト表示" > $OUTPUT echo 'item(QString)' "stop" > $CONTROL while read URL do echo 'item(QString)' "$URL" > $CONTROL done < $LIST echo 'showSelect()' > $CONTROL while read RET < $INPUT do case "$RET" in "stop") echo "停止します" > $OUTPUT killall mplayer ;; *) # echo "ret=$RET" > $OUTPUT ASX=`echo $RET | grep -e "\.asx$"` # echo "asx=$ASX" > $OUTPUT if [ "$ASX" ]; then echo "ASXファイルを取得します" > $OUTPUT wget -O $TMPFILE $ASX MMS=`cat $TMPFILE | grep "HREF" | sed -e 's/^..*"\(..*\)"..*$/\1/'` # echo "mms=$MMS" > $OUTPUT echo "$MMS を再生します" > $OUTPUT rm $TMPFILE $MPLAYER $MMS & else echo "$RET を再生します" > $OUTPUT $MPLAYER $RET & fi ;; esac done