Raspberry Pi が余っていたので使い道を考えたところ、AirPlay化できるということが判明。
いつの間にか家にはApple製品が増えていて、AppleTVも必需品となりつつある我が家としては手軽に音楽を飛ばせるときっと便利。というわけでAirPlay化に挑戦。
と言っても、参考になるページが盛り沢山なので改めて記事にすることはないと思うが、少しハマったところの備忘録として残しておこうと思う。
元ネタは
https://github.com/mikebrady/shairport-sync
大変ありがたく使わせて頂いた。基本的にこのページの説明通りに進めればOK。
インストールを終えてshairport-syncの設定は以下のファイルで行う。
20190906>
shairport-syncをupdateしたら
が読まれるようになっていたので注意。
まず、AirPlayの名前。interpolation設定。re-samplerが実装されているらしくそちらを有効に。re-sampleによる音質向上は期待できるが、CPU負荷は上がる模様。Raspiが余っていたくらいなのでAudio専用機にするつもりなのでCPU負荷はどうでもよい。ということでON。
うまく動いていると思いきや、allow_session_interruption動作が怪しい。
iphoneなどで音楽再生中にmacから割り込む(逆も然り)などの動作でshairport-syncのサービスがkillされてしまう模様。無理矢理感もあるが、cronで以下scriptを30secに一度起動してshairport-sync のstatusを監視し、お亡くなりになっているようだったら再起動する。これでいちいちサーバが落ちた時に手動で対応する必要がなくなる。最大30secお茶を飲んでいれば自動再起動がかかる。
sudo iwconfig wlan0 power off
https://github.com/mikebrady/shairport-sync/blob/master/TROUBLESHOOTING.md
-> この設定後、AirPlayが落ちる現象がなくなったので、ビンゴっぽい。
追記>
AirPlayで接続したらAmpの電源を自動的に入れたくなってきたので、
方法を探っていたら、shairport-sync.confに素晴らしい機能が実装されていた。
begin, end時にスクリプトを走らせる。amp_on.sh, amp_off.shの内部は割愛するが、
とにかく赤外線でON/OFF信号をAmpに送るスクリプト。
AirPlay開始時にamp.on.shが呼ばれるのでAmpに電源が入り、終了する時も同様に
AmpをOFFしてくれる。これでまた一つ便利になった。
コメント