Raspberry Piでインターネットラジオを作る #2
mpcでインターネットラジオのストリーミングを聞く
色々なサイトを参考に、mpd/mpcのインストールと設定を済ませると、音が出るようになりました。
さて、次はストリーミングの再生です。
/var/lib/mpd/playlists/に、プレイリストファイルを作ります。
ファイル名は適当、拡張子は.m3uでOK。
下記のように作ったものを /var/lib/mpd/playlists/にradio.m3uとして保存。
#FM - CLASSIC ROCK REPLAY RADIO http://185.33.22.20:8206 #Radio tornado one oldies 50s 60s 70s 80s http://91.181.7.173:8000 #Death.FM http://209.9.229.211:80
ストリーミング局を探す
ラジオ局のURLですが、僕は http://www.shoutcast.com/ で下記のようにm3uファイルをダウンロード、その中から取得しました。
他にも色々あると思います。
Pythonからmpcを動かす
mpcでストリーミングを再生する場合、musicフォルダは関係ないので、
mpc clear mpc load [プレイリスト] mpc play
という流れになります。
これをPythonからやってみることにします。
pythonのプログラムからコマンドを実行するには、subprocess というモジュールを使えばいいとのこと。とにかくマニュアル通りにやってみます。
まず、モジュールを読み込み、
import subprocess
次に、subprocess.callを使い、mpc clear をコマンドとして送ります
subprocess.call('mpc clear', shell=True)
実はこの、subprocess.callとかsubprocess.Popenとか、subprocessモジュールについて理解するのに三日くらいかかりました・・・いや、まだ完全に理解したわけではありませんが、なんとなく使えるようになるのに三日くらいかかった感じです。
subprocess.Popenはオブジェクトが返ってきたりと高機能ですが、mpc clearやmpc loadは特に何も返ってこなくていいと思ったので、一番シンプルそうなsubprocess.callを使いました。文字列をコマンドとして送るので、shell=Trueを付けています。
同じようにプレイリストのロードと、再生のコマンドを送ります。
subprocess.call('mpc load radio.m3u', shell=True) subprocess.call('mpc play', shell=True)
これでストリーミングの再生ができました!
でも、もうちょっと操作ができるようにしないと・・・
続く