解决 wsl2/WSLg 声音卡顿不连续问题
- 默认的 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 #0State: IDLE # 如正在播放声音, 这里会显示为 RUNNINGName: outputDescription: WaveOut on Microsoft Sound MapperDriver: modules/module-waveout.cSample Specification: s16le 2ch 44100HzChannel Map: front-left,front-rightOwner Module: 4Mute: noVolume: front-left: 65536 / 100%, front-right: 65536 / 100%balance 0.00Base Volume: 65536 / 100%Monitor Source: output.monitorLatency: 214081 usec, configured 250000 usecFlags: HARDWARE HW_VOLUME_CTRL LATENCYProperties:device.icon_name = "audio-card"device.description = "WaveOut on Microsoft Sound Mapper"Formats:pcm