AirPlayサーバーとして使用しているRaspberry Pi2(以下Rpi2)をもう少し便利に使おうと思い、インターネットラジオを受信再生できるようにしました。
画面のキャプチャーはiPad miniにインストールしたVNCクライアントのもので、Rpi2の端末ウィンドウが小さくて見難いですが、実行したコマンドを書いておきますのでわかると思います。画像は雰囲気で。笑
Rpi2にログインしたらソフトウエアをアップデートしておきます。
sudo apt-get update
を実行。
mplayerという音楽再生ソフトをインストールします。
sudo apt-get install mplayer
を実行。
mplayerがあればコマンドラインからインターネットラジオに接続できますが、手元のiPhoneやPCからコントールしたいので簡単なWebインターフェースを作ろうと思います。今回はapacheとphpを使います。(すでにこれらがインストールされている場合はこのステップは省略してください)
sudo apt-get install apache2 php5
を実行。
インストールが終わるとapache Webサーバーが起動していると思います。確認のためにiPadのSafariから接続してみます。Rpi2のIPアドレスを調べ、次のURLで接続します。
http://xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxxはRpi2のIPアドレス)
AirPlayサーバーにしてときにZeroconf (Avahi)がインストールされているので、http://raspberrypi2.local (当工房の場合はraspberrypi2がこのRpi2のホスト名)でもいけると思います。
apache2のデフォルトページ(index.html)が表示されれば成功です。
インストールしたapache2のドキュメントルートは
/var/www/html
です。ここに上の画像のindex.htmlがあります。
簡単なWebインターフェースを作ります。
index.htmlを削除してindex.phpを追加します。ファイルの中身は次のような感じです。
<?php if(isset($_GET['id'])) { $id = $_GET['id']; if($id=="stop") { exec("killall mplayer"); } else { exec("killall mplayer"); exec("mplayer -playlist http://yp.shoutcast.com/sbin/tunein-station.pls?id=" .$id. " > /dev/null &"); } } ?> <html> <head> <meta name="viewport" content="width=device-width"> </head> <body> <p><a href="index.php?id=stop">stop</a></p> <ul> <li><a href="index.php?id=172098">SmoothJazz.com Global Radio</a></li> <li><a href="index.php?id=709809">ABC Lounge</a></li> <li><a href="index.php?id=209680">ABC Jazz</a></li> <li><a href="index.pho?id=190282">Jazzradio</a></li> <li><a href="indez.php?id=98600">TheJazzGroove.com</a></li> </ul> </body> </html>
ファイルの先頭部分にmplayerの停止やインターネットラジオへの接続コマンドが記述されています。
apacheはwww-dataというユーザーで実行されていますので、このユーザーをaudioグループに追加してオーディオデバイスにアクセスできるようにします。
sudo usermod -G www-data,audio www-data
audioグループへの追加ができたらapacheを再起動します。
sudo apachectl restart
ブラウザからRpi2にアクセス。
こんな画面が出ます。
この画面を操作して”stop”のリンクを押したらmplayerが停止、ラジオ局のリンクを押したらmplayerが選択したラジオ局と接続した状態で起動していれば成功です。
あとはWebインターフェースの見栄えを良くしたり、ラジオ局を追加したりして、好みのインターフェースに仕立てていけば良いです。これでローカルネットワーク内で手元のスマートフォンやPCからインターネットラジオを再生する環境ができました。
簡単ですね!
Raspberry Piにはオーディオ出力端子がありますが、内蔵のサウンドデバイスは音質が良くないので、USBオーディオインターフェースを取り付けてオーディオスピーカーを鳴らしています。あまり高価なものではないのでUSBオーディオインターフェースの取り付けをおすすめします。