最近、AWA で音楽をよく聴いています。ストリーミング型の音楽アプリですね。

外に出掛けているときは、iPhone にイヤホンを挿して聴いていますが、家で机の前に座って PC 作業をするときは、USB-DAC (TEAC A-H01) に繋がったスピーカーから音が出てほしいなと思うわけです。

素直にイヤホンで聞いても良いのですが、周囲の音が聞こえなくなってしまうという問題もありますし、何より折角スピーカーがあるのですから、家ではそれを使って聴きたいなとも思います。

今のところ AWA にはデスクトップ版は無いようなので、 iOS 端末で流れる音をなんらかの方法でスピーカーに持っていく必要があります。 側が RCA でもう片方は 3.5mm のやつ)で接続していたのですが、色々イケてない点が見えてきました。

  • オーディオケーブルを繋ぐ必要があり面倒 & 邪魔
  • USB <-> LINE IN 入力の切り替えが必要になる
  • USB 接続している iMac の音が聞こえなくなる

3番目に関しては、メインマシンに直接繋いで音を出せば解決できそうですが、 USB-DAC の繋がったメインマシンは iMac late 2012 なので LINE IN 端子が無いです。

airplay01

[理想] このようにしたい:

airplay02

こんなわがままな僕の要求を実現する方法があるのか考えてみたところ、2つ方法がありました。 どちらの方法も、AWA に限らず iOS 上で流れる音であれば PC のスピーカーから鳴らすことができるようになります。

【方法1】 Lightning ケーブル + QuickTime Player

Mac と iOS 端末を Lightning ケーブルで接続します。充電や同期をするときと一緒ですね。 この状態で、 QuickTime Player を立ち上げ [ファイル] → [新規オーディオ収録] を選びます。

airplay03

録音ボタンの右の三角ボタンを選ぶと、入力元が選べるメニューが出てくるのですが、iOS 端末を接続するとメニューの中に現れるようになります。 あとは、 QuickTime Player の音量を適当な位置に設定し、 iOS 端末側で音を流せば PC のスピーカーから聞こえるようになります。 Mac の方はこの方法が一番手軽かもしれません。

(Windows で出来るのかは試していませんのでわかりません)

【方法2】AirPlay サーバ ShairPort を起動し無線 LAN 経由で送信

abrasive / shairport を使います。

起動すると AirPlay のレシーバとして動作し、 iOS 端末など AirPlay 対応の機器から送信されてきた音声を再生することができます。 ビルドと動作にはターミナルでのコマンドライン操作が必要になります。

詳しいビルド手順はここでは省略したいと思います。詳しくは README など参照してください。

git clone https://github.com/abrasive/shairport.git 
cd shairport
./configure
make

ビルドが終われば後は起動するだけ。

-b オプションでバッファサイズを指定してあげる必要がありました。

./shairport -b 256

iOS 端末で出力先として Shairport が選択出来るようになります。

後は音楽アプリで曲を再生し始めれば AirPlay 経由で PC のスピーカーから音楽が流れてきます。 若干タイムラグがあるようで、端末側の操作から数秒遅れて音が流れたり止まったりすることはあります。 (無線 LAN を経由するのと、バッファを使用している為だと思います。)

airplay04

-d オプションで daemon 化してしまえば、ターミナルを閉じても起動し続けてくれます。

./shairport -b 256 -d

“ShairPort is no longer maintained” とのことですが、動作に関して特別気になる点は今のところ見当たりません。 fork されたプロジェクトもあるようですので、そちらも参考にしてみるのが良いと思われます。

方法1は QuickTime Player が動作する環境が必要でしたが、こちらの方法であれば Linux でも動作するようです。 ArchLinux を常用している方や、余った Raspberry Pi の有効利用にも使えそうですね。

いかがだったでしょうか。 僕は 方法2 の AirPlay サーバを立ち上げる方法を使うことにしました。

ShairPort を daemon として起動してバックグラウンドでずっと立ち上げたままにしています。 曲を聴きたいタイミングで QuickTime Player を立ち上げる必要もなく、 iOS 端末側の操作だけで再生をはじめることができます。

AirPlay サーバは有料のアプリとして配布されているものもありますが、 Shairport は OSS として提供されていますので、自前でビルドできる方は気軽に試せるのではないでしょうか。

AWA に関してはデスクトップ版もいずれ提供されるようですので、提供が始まればそちらを使うほうが良いかと思います。

参考: ヘルプ - AWA PC で利用できますか?