解決 wsl2/WSLg 聲音卡頓不連續問題
- 我的 windows 上預設的 WSLg 聲音斷斷續續, 這裡改用 PulseAudio 來替代其聲音播放
- Linux 端設定
vi ~/.profile # 增加一行: export PULSE_SERVER=tcp:172.22.80.1 # IP 為 windows 端的IP
- windows 端設定
1. 修改/etc/pulse/daemon.conf 檔案中:
exit-idle-time = -1
# 空閒時也不退出服務
2. 修改\etc\pulse\default.pa 檔案中:
load-module module-waveout sink_name=output source_name=input record=0
# record=0 不開啟麥克風; record=1 開啟麥克風
load-module module-native-protocol-tcp auth-anonymous=1
# auth-anonymous=1: 允許匿名連線
在 windows 端 cmd 中啟動 bin\pulseaudio.exe 伺服器, 即可在 WSLg 應用中流暢播放聲音了.
正常連線 pulseaudio 伺服器後, 使用命令檢查, 顯示結果如下:
$ pactl list sinks
Sink #0
State: IDLE # 如正在播放聲音, 這裡會顯示為 RUNNING
Name: output
Description: WaveOut on Microsoft Sound Mapper
Driver: modules/module-waveout.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 4
Mute: no
Volume: front-left: 65536 / 100%, front-right: 65536 / 100%
balance 0.00
Base Volume: 65536 / 100%
Monitor Source: output.monitor
Latency: 214081 usec, configured 250000 usec
Flags: HARDWARE HW_VOLUME_CTRL LATENCY
Properties:
device.icon_name = "audio-card"
device.description = "WaveOut on Microsoft Sound Mapper"
Formats:
pcm