解決 wsl2/WSLg 聲音卡頓不連續問題

技术不支持發表於2024-09-12

解決 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

相關文章