WSLで音楽をWindowsから再生する。
WSL2にX windowがあるからいいじゃないかとか、WSLv2 with X でやればいいじゃないかとかそういうのは一旦脇に避けておいて、mplayer を使って音楽を再生したい。
pulseaudio を使う。
TCPを通すとできる。
仕組み
ようは、2ステップです。
準備1(Windows+pulseaudio+tcp)
windowsでpluseaudioを動かして、tcp でリッスンする。
pulseaudio の配置場所を作る
appdata=/mnt/c/Users/takuya/AppData/Roaming cd $appdata mkdir PulseAudio cd PulseAudio
pulse audio を用意
curl -LJO http://bosmans.ch/pulseaudio/pulseaudio-1.1.zip unzip -o -d . pulseaudio-1.1.zip
TCPでリッスンする設定を追加
conf='load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1' echo $conf >> etc/pulse/default.pa
pulseaudio を起動
C:/Users/takuya/AppData/Roaming/PulseAudio/bin/pulseaudio.exe
起動用スクリプトにする。
var ws = WScript.Createobject("WScript.Shell") ws.Run('C:/Users/takuya/AppData/Roaming/PulseAudio/bin/pulseaudio.exe --exit-idle-time=-1',0)
wscript で起動する。
wscript.exe pulse-start.js
起動すると、タスクマネージャーに出てくる。
wsl 側でpulseaudioを設定する。
pulse audio をインストールして、TCPで接続するように設定する。
インストール
sudo apt install pulseaudio
設定を変える。
echo default-server = tcp:localhost >> etc/pulse/client.conf
再生してみる
sudo apt install mplayer mplayer sample.m4a
再生できた
WSL でもmplayer を使って再生できた。
まさか、いまさらWScriptを持ち出すとは思わなかった。
今回は、WSLv1なので、V2の場合はどうなることやら。
しかし、アウトプットのスピーカーを選べないのがなぁ。pulse audioのWindowsののGUIとか設定方法を探るしか無いな。