解决 wsl2/WSLg 声音卡顿不连续问题

解决 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
posted @ 2024-09-12 00:37  技术不支持  阅读(78)  评论(0编辑  收藏  举报