AndroidをESXi仮想マシンのスピーカーにする方法

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/

WiFiAudio-Web

それぞれのOSに合わせた送信用ソフトウェアをダウンロードします。

Windows Vista以降
Linux (with Pulse Audio)
WindowsXP (with Wave Mix/Stereo MIx)

基本的にダウンロードしたファイルを実行するだけです。

WiFiAudio-exe

 

実行してIPアドレスを入れて、Startを押すだけで、PCで鳴らした音がAndroidから流れるようになります。

WiFiAudio-PC

 

ただし、物理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の仮想マシンから音を出す方法は、ほかにも色々あるのでそのうちまとめる予定です。

VMware vSphere PowerCLIを使用したスクリプトをバッチから起動するためのメモ

VMware vSphere PowerCLIを使用したスクリプトをバッチから起動するためのメモです

VMware vSphere PowerCLIは便利ですが、VMware vSphere PowerCLIコンソールを立ち上げてからのコマンド実行なので、少しめんどくさいです。なので少し調べてみました。

なお、VMware vSphere PowerCLIは、以下からダウンロードできます。

ダウンロード vSphere PowerCLI 5.5

VMware vSphere PowerCLIに限らずですが、
Powershell スクリプトファイル(.PS1)を実行するためにはポリシー変更が必要です。

VMware vSphere PowerCLIを初回起動時には以下のように表示されます。

 

この場合、管理者として実行したPowershellにて、以下のコマンドを実行する必要があります。

(上記の場合、ローカルのローカルに保存されているスクリプトは実行可能。インターネットからダウンロードしたスクリプト(非ローカルのスクリプト)は、署名されているもののみが実行可能。)

そのほかのパラメータとしては、以下のようなものがあります。

Unrestricted
全てのスクリプトが実行可能。ただしインターネットからダウンロードしたスクリプトは、実行するかどうかが確認されるので、ユーザーが明示的に許可した場合のみ実行される

Bypass
全てのスクリプトが実警告やユーザーへの確認なしに、全てのスクリプトが実行可能

 

 

これで、VMware vSphere PowerCLIを起動した状態でPowerSHellからスクリプトファイルが実行できるようになります。

ためしに以下のps1ファイルを作成します

Get-PowerCLIVersion.ps1

 

これをVMware vSphere PowerCLIで実行します。

 

しかし、コマンドプロンプトやバッチファイルから以下のように実行しても、エラーになります。

 

この場合は、実行するps1ファイルに以下の行を追加します

 

実際にやってみます。

Get-PowerCLIVersion.ps1 を変更

 

コマンドプロンプトから実行してみます

実行できました。

あとは以下のようなバッチファイルを書けば、すぐに実行できますね。

Windowsでの文字化け対策メモ

この間、突然特定のソフトのみで、文字バケが発生してわけワカメ状態に

いろいろやってみて、何とか回復したのでメモ

実際におかしくなったのは、

・VMware vSphere Client
・BJD(Block Jumbo Dog)

通常のWindowsのデスクトップとかは問題なし。

アプリの再起動や、PCの再起動をしても解決しなかったのですが、

以下のURLの対策をしたら、何とか復活

http://www21.atwiki.jp/cr500/pages/48.html

どうやら、Unicodeを使用していないアプリで文字化けした場合は、この対策が有効なようだ。

 

最初にフォントキャッシュのクリアとかもやっても直らないので、悩んでいたらこういう落ちでした。

http://freesoft.tvbok.com/windows7/general/fontcache.html