Raspberry Pi Radiko Player(with CD-Player version)

前回のRadiko Playerラジオバージョンに暫定的(永遠に暫定的)ですがCD Playerを搭載してみました。

現状は実行中のMplayerからは再生中のトラックや終了の情報をを得ることができない(わからない)という課題がありますがそれ以外はほぼ快適に使えるかなと思っています。

Raspberry pi 3(raspbian jessie)ディスクトップの設定
パッケージのインストール

# apt install cd-discid nkf

CD-ROMドライブをwww-dataから読めるようアクセス権の変更
/etc/udev/rules.d/99-cd.rulesの新規作成
idVendorとidProductはドライブによって違うのでlsusbで調べる

/etc/udev/rules.d/99-cd.rules
ATTRS{idVendor}=="04bb", ATTRS{idProduct}=="022b", GROUP="pi",MODE="0666"

空ファイル作成

# touch /var/www/html/freedb.txt
# chown www-data:www-data freedb.txt

index.phpの編集

/var/www/html/index.php

ここで一旦再起動します。

Radiko Playerにアクセス

http://localhost/


動作確認は以下の環境で確認しています
Pi3(jessie) 内蔵(bcm2835 ALSA) IO-DATA DVRP-U8N
Pi1B(moode3.1) USB-DAC IO-DATA DVRP-U8N

アルバムのトラック数はcd-discidから取得出来ました。これでラストのトラックも指定可能になりました。

$ cd-discid /dev/sr0
550a3707 7 150 26531 49333 81025 111350 136975 160148 2617

ディスクを入れていない状態でeject以外のCD関連のボタンを押すとNo medium foundを表示します。
<>ボタンは1トラックステップ
&ボタンは3トラックステップ
>>ボタンはラストトラック
<<ボタンはトラック1に移動


CDをセットしていきなりCD PLAYを押しても再生と同時にFreeDBに問い合わせてCDDB情報を取得します。
その他のボタンを押しても同様にCDDB情報を表示します。
一度取得したCDDB情報はセッションに記憶され再利用します。
セッション情報はイジェクトするまで有効です。


トラック5を選択してトラックボタンを押すとシングルプレイモードに入ります。

曲をスキップしたい時は送りボタンでトラックを選択プレイボタンを押すという流れになります。


ここで再度プレイボタンを押すとトラック5〜ラストのモードになります。
トラック1から連続再生する時はストップボタンでトラック番号はクリアします。
テキストエリアはなにかPHP実行のボタンを押すとデフォルトの大きさに戻ります。(仕様です)


再生しないでCDDB情報をみる時はFreeDBボタンを押します。

このときセッション情報がなければ問い合わせに行きあればそれを再利用します。


CD再生中にステーション情報をみる時は上段のRadio Stationのリンクをクリックします。

戻る時はFreeDBボタンで戻ります。

以上のように現状の課題は再生中のトラックを表示できない、再生終了しても現在の表示が残っているいうことになります。

表示についてもラジオ再生中は音量ボタンを押してもステーション情報をCD再生中はCDDB情報を表示できるように苦心したつもりです。多少の不具合はあるかもしれません。


環境によってはボタンがはみ出すかもしれません。その場合はカラムを調整するといいと思います。
現在は3−6−3の構成をとっています。3−7−2とすると中央のカラムはずっと広くなります。
あとは寄せたり上げたりするといいかもしれません。(簡単なhtmlの知識が必要)

<div class="col md-7 float-center">
<div class="col md-2 float-right">

当サイトのジャンクなUSB-DACでもCDはなかなかいい音がしています。取り敢えず試すなら内臓のALSAでも問題ないと思います。mplayerなら盛大なポップノイズも出ません。

index.phpファイルは少し長くなってしまいますが動作としてはなんら問題ないと思います。(ラジオサイトの追加編集が少し面倒になるくらいです)
当サイトとしては基本index.phpのみで構成したいと思っています。

# OS起動直後Station欄に”Raspberry Pi Radiko Player”を表示させているとテキストエリアが切り替わらない不具合がありました。取り敢えず表示なしに変更
参考 index.php.pi.cd-ver2