AndroidをPC(ESXiの仮想マシン)のスピーカにしてみたので、そのメモ
ESXiの仮想マシンの場合、通常の方法では、音を鳴らすことができません。
そこで、通常ではない方法の一つとして、AndroidをESXi仮想マシンのスピーカーにする方法を試してみました。
有償ソフトもあるけど、とりあえず試したのは、「WiFi Audio Wireless Speaker」。
このソフトは、PC(Xp,Vista以降、Pluse Audioを使用しているLinux)で出た音声を、同一ネットワーク上にあるAndroidに送信して、Androidのスピーカーから出すことができます。
まずは、Android側に上記のアプリをPlayストアからダウンロードして、起動します。
操作は基本的に、WiFi Audio Statusを OFF/ONしかありません。
ONにすると、受信した音が鳴るようになります。
また、画面下にはIPアドレスが表示されます。
次に送信先となるWindowsに送信用アプリを以下からダウンロードします。
http://ajeetv.info/wifiaudio/
それぞれのOSに合わせた送信用ソフトウェアをダウンロードします。
Windows Vista以降
Linux (with Pulse Audio)
WindowsXP (with Wave Mix/Stereo MIx)
基本的にダウンロードしたファイルを実行するだけです。
実行してIPアドレスを入れて、Startを押すだけで、PCで鳴らした音がAndroidから流れるようになります。
ただし、物理PCの場合、物理PCのスピーカーもONになっていると、PC側とAndroid側の両方から音が鳴ります。
Android側からの音は若干の遅延が発生するのでエコー状態になるので
PC側のスピーカの音量を0にするか、ミュート状態にする必要があります。
また、通信時のビットレートは約1.4Mbps程度です。圧縮転送の機能はありませんので、
その場合は別のソフトの有償版を使うしかないようです。
・WiFi Speaker(無償版)・WiFi Speaker Pro(有償版)
・SoundWire (free version)・SoundWire (full version)
(両方未検証です)
また、1つのAndroidに複数のPCから音声を転送しようとすると、ノイズが多くなり事実上使えませんでした。
で、このオレ的用途ですが、
このアプリを使えばESXi内の仮想マシンから音声を出力することが出来ます。
ただし仮想マシンにAudioデバイスがないと、PC側アプリでStartできませんので
何らかのAudioデバイスを仮想マシンから認識させなければなりません。
物理的なデバイスをつけないという条件であれば、
ESXi仮想マシンのvmxファイルに隠しパラメータであるHDAudioをつける記述を行うか、
仮想Audioデバイス(XPの場合はTiVSound。Windows 7以降であればNetDuetto付属の仮想デバイスがお勧め)をインストールする必要があります。
上記の仮想的なデバイスは、OSからはAudioデバイスがあるように見えますが、実際に音を出すことは出来ません。ただし、Audioデバイスがないと動かないようなソフトウェアがこれをつけると動くようになります。
今回のWiFi Audio Wireless Speakerもこれで動くようになります。
ESXiの仮想マシンから音を出す方法は、ほかにも色々あるのでそのうちまとめる予定です。