hoagの日記: 余ったノートをジュークボックスにする
古いノートが余っていたので、スピーカーを付けて、.mp3 とか .wma とかのファイルを再生させる事にした。但し、操作はメインの PC から行う。 一応 X も上げてあるので、Xming などでつないでも良いのだが、ブラウザで操作できる様、CGI を作成してみた。 結果、数十行のコードで手軽にできたので、環境、その他のめも。
http サーバには、thttpd を使う。もう、web と CGI が動けば良いので、軽いもので。
再生には moc パッケージにある mocp コマンドを使う。そのままでは .mp3 と .wma のどちらだったかが再生できない ので、moc-ffmpeg-plugin パッケージも入れておく。
.mp3 と .wma の両方の再生ができれば、HP から取得できるたいていのファイルが再生できる。 ウェブラジオ(web radio) とかポッドキャスト(podcast) ってやつ。 mms:// なファイルは別途ローカルに保存しておく(一応、Debian でも Win でもできる)。
あとは、CGI でファイルの一覧を作って、そこから選んだファイルを再生用 CGI に渡して、内部から mocp コマンドを実行する、と。
この、mocp コマンド。実行すると、バックグラウンドにデーモンを起動して、すぐ処理が終了する。この点が CGI としては、すごく、好都合。 また、ボリュームの増減などもできて、便利便利。
CGI は Perl で、CGI モジュールを利用した。ヘッダなどの定型部分が楽に記述できる。
引っかかったのは、CGI の実行ユーザである www-data を audio グループに追加する必要があった事と、 perl に -Tw オプションを付ける事にしているため、入力値を一度正規表現に通してロンダリングする事位。 後はお決まりのファイルのパーミッションとか。
取りあえず、一覧を作って内部からコマンドを発行するだけの CGI をちょろっと作って、 ってのが簡単にできたのがうれしかったので。
余ったノートをジュークボックスにする More ログイン