やりたいこと
ワイヤレスオーディオ環境がほしい!!!
「Bluetoothスピーカーを買え」
いやまぁそうなんだけど、お金もないことだし、いま持ってる機器だけでなんとかしたい というのがこの記事の趣旨。
いま持ってる機器
- ネットブック: HP Mini 5103 (Linux Mint 入れてる)
- 無線ルータ: AirMac Extreme
- USB-DAC: TASCAM US-100
- スピーカー: Creative Inspire T10
これらを使って以下の様なネットワークを作る。
※ USB-DACは持っていたから挟んだだけで、別にAirPlayサーバにスピーカー直繋ぎでもよい。
AirPlay
AirPlayはiTunesやiPhoneの音楽・動画をストリーミング再生するAppleの技術。
もちろんオープンソースではないので、AirPlayサーバが欲しければ AirPlay対応のApple製品(AppleTVとか)を買わなければならない。
ところがどっこい今は21世紀。
どこぞの凄い人がAirPlayサーバのエミュレータを作って公開してくれている。
ShairPort
abrasive / shairport - GitHub
This program emulates an AirPort Express for the purpose of streaming music from iTunes and compatible iPods and iPhones.
AirTunes(AirPlayのオーディオ部分)をエミュレートしてiTunesやiPhoneからストリーミングできますよ、的な。
これを導入すればAppleTVを買わなくてもAirPlayサーバを構築できる!!
導入
使い道がなくて持て余していたネットブックにShairPortをインストールする。
ちなみにOSは Linux Mint だけど、Debian系ならだいたい同じ手順なはず。
sudo apt-get install libssl-dev libavahi-client-dev libasound2-dev git clone https://github.com/abrasive/shairport.git cd shairport/ ./configure make
とりあえず起動してみる
./shairport -a 'ほとAudio'
これでAirPlayサーバが立ち上がるので、iPhoneのコントロールセンターで確認してみる。
もしここでうまくいかなければ、 ShairPortのオプションで出力先のオーディオデバイスを指定するか、 そもそもそのオーディオデバイスが使用可能であるか確認する必要がある。
自動起動させる
-d
オプションを付ければデーモンとして起動することもできるのでもうこれで終わってもいいのだけど、
せっかくなのでマシン起動時に自動でAirPlayサーバが立ち上がるようにする。
さっきのディレクトリで
sudo make install
これでshairport
が/usr/local/bin/
にインストールされる(はず)。
起動スクリプトは既に用意されているのでそれを利用する。
cd script/debian/ sudo cp init.d/shairport /etc/init.d/ sudo cp default/shairport /etc/default/
/etc/default/shairport
を編集。
以下の部分を書き換える。
DAEMON=/usr/local/bin/shairport AP_NAME='ほとAudio'
最後に、shairport
が自動起動するように設定。
sudo update-rc.d shairport defaults
問題点
OS/アプリがAirPlayに対応してないと再生できない
iOSだと色々なアプリの音声をストリーミング再生できるけど、 Macだと今のところ対応してるアプリが少なく、基本的にiTunesからしかストリーミング再生できない。 例えば、ブラウザでYouTubeの動画を再生してもその音声をストリーミング再生することはできない。
たまにバグる
接続に失敗するのか何なのかわからないが、たまに正しく再生されずにノイズが流れることがある。 いったんWi-Fiをオフにして接続し直すと治ったり治らなかったりする。
かなり遅延する
再生ボタンを押してから流れ始めるまでに2,3秒は遅延する。 せっかちな人にはつらい。
まとめ
Linuxマシン(ネットブックでもRaspberryPiでも)さえあればAirPlay環境が構築できるのでShairPortオススメ。