如何获得与WSL2兼容的声音(PulseAudio)

本文介绍如何使声音(PulseAudio)起作用 WSL2 在Microsoft Windows下。

通过执行以下步骤, 脉冲音频 在Windows / WSL2上,同时用于控制台和GUI应用程序(尽管本文不介绍在WSL2上运行图形应用程序)。有了这个,麦克风就没用了,或者至少对我来说没用(而且我还是不需要它)。

微软 计划 向WSL2添加了内置支持,以运行图形应用程序和声音。但是,在此之前,您可以使用以下步骤使声音在WSL2中正常工作。

如果您仍在使用WSL1,请参阅如何升级到WSL2。 这里..您可以通过运行来检查是否已经在使用WSL2。 wsl -l -v 在Windows PowerShell中。 必须在此处使用2列出使用WSL2的每台计算机。 VERSION如果看不到版本号,或者收到错误消息,则说明您拥有WSL1。

以下是显示我正在使用的运行Ubuntu / WSL2的Windows终端的屏幕截图。 康姆斯 控制台音乐播放器,用于播放音乐。我听不到音乐,因此看不到它是否真的在工作。该屏幕快照根本没有帮助,但我需要一个屏幕快照才能用作文章缩略图🙂️。

完全不相关的说明是,如果将cmus与WSL2一起使用, ~/.config/cmus/rc 归档(如果不存在则创建)并添加 set output_plugin=pulse 使声音输出在Windows桌面上工作。

1.下载适用于Windows的PulseAudio。

对于Windows:

我找到的Windows 10的PulseAudio最新版本是 这里,专为X2Go构建。您可以访问该链接,然后单击快照以下载Windows的PulseAudio。 或点击这里下载..

下载此 .tar.gz 档案。解压缩此归档文件并重命名包含以下内容的文件夹 pulseaudio.exe,以及其他PulseAudio可执行文件和文件 pulse,此新副本 pulse 在资料夹中 C: (所以你应该有例如 C:pulsepulseaudio.exe)。

2.设置Windows的PulseAudio。

对于Windows:

创建一个名为 config.paC:pulse.. 为了能够在Windows中重命名文件扩展名,您需要启用“文件资源管理器”中文件扩展名的显示。

有了这个 C:pulseconfig.pa 将以下内容添加到文件中,并在完成后保存文件。

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;172.16.0.0/12load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;172.16.0.0/12load-module module-waveout sink_name=output source_name=input record=0

在这里,我们允许来自 127.0.0.1 这是本地IP地址 172.16.0.0/12 这是WSL2的默认空间(172.16.0.0-172.31.255.255)。

3.在WSL2上设置PulseAudio。

对于WSL2(Ubuntu /您使用的是什么):

确保你有 libpulse0 如果未安装,将无法使用。要安装的名称和命令取决于您使用的Linux发行版,应搜索并安装。 在Ubuntu / Debian上,您可以使用以下命令进行安装:

sudo apt install libpulse0

WSL2仍然需要编辑 ~/.bashrc 文本编辑器中的文件-使用以下命令,使用Nano Console Editor编辑文件。

nano ~/.bashrc

滚动浏览此文件至末尾并粘贴以下内容:

export HOST_IP="$(ip route |awk '/^default/{print $3}')"export PULSE_SERVER="tcp:$HOST_IP"#export DISPLAY="$HOST_IP:0.0"

您可以在这里取消评论 export DISPLAY 另外,要出口的线 DISPLAY 环境变量(并非每个人都需要它,因此默认情况下我将其注释掉了)。如果要使用VcxSrv之类的东西从WSL2启动图形应用程序,则需要这样做(本文中的配置为在WSL2上运行的图形应用程序提供了良好的支持)。

完成后,保存文件并退出Nano(Ctrl + oEnter 然后 x 保存文件,并且Nano存在。下一个, ~/.bashrc 使用新的环境变量的文件:

source ~/.bashrc

4.将PulseAudio安装为Windows服务。

对于Windows:

使用NSSM将PulseAudio作为Windows服务启动。 从这里下载NSSM解压缩下载的存档并复制win64 nssm.exe 可执行文件 C:pulse..你可以找到这个 win64 已下载的NSS Mzip归档文件中的文件夹。

然后在Windows“开始”菜单中搜索PowerShell,右键单击PowerShell条目,然后选择: Run as Administrator..

在PowerShell中,键入或粘贴如下:

C:pulsenssm.exe install PulseAudio

运行此命令将打开NSSM GUI。在里面 Application 标签,使用:

NSSM应用程序选项卡

  • 应用路径: C:pulsepulseaudio.exe
  • 启动目录: C:pulse
  • 争论: -F C:pulseconfig.pa --exit-idle-time=-1
  • 服务名称(NSSM对话框打开时必须自动输入): PulseAudio

正在使用[引数]场地 -F,告诉PulseAudio在启动时运行指定的脚本。 --exit-idle-time=-1 禁用几秒钟不活动后终止守护程序的选项。

Details 制表符,输入 PulseAudioDisplay name 场地:

NSSM详细信息选项卡

完成所有这些操作后,[[Install service 按钮。

如果以后要删除此Windows服务,请以管理员身份再次运行PowerShell,这次运行以下命令以删除该服务。

C:pulsenssm.exe remove PulseAudio

5.启动PulseAudio Windows服务。

启动Windows任务管理器,然后单击 Services 按选项卡滚动到PulseAudio。 找到PulseAudio服务后,右键单击它,然后 Start 它:

Windows Task Manager服务PulseAudio

而已。 PulseAudio当前正在运行。 您应该能够在WSL2中使用启用了音频的应用程序,并在Windows 10桌面上收听其音频输出。

PulseAudio是作为服务安装在Windows 10上的,因此一旦启动它,它将在您登录Windows桌面时自动启动,因此您无需手动重新启动它。

参考: Ubuntu话语 然后 X2Go Wiki..

Sidebar