在 Windows 10 中运行 pulseaudio 以在 Linux Ubuntu 的 Windows 子系统中获取音频输出

在 Windows 10 中运行 pulseaudio 以在 Linux Ubuntu 的 Windows 子系统中获取音频输出

我已经为 Linux 安装了 Ubuntu for Windows 子系统。我想让一些音频在 Ubuntu 中工作。我已阅读以下教程:

https://research.wmz.ninja/articles/2017/11/setting-up-wsl-with-graphics-and-audio.html
https://wiki.ubuntu.com/WSL#Enabling_Sound
https://x410.dev/cookbook/wsl/enabling-sound-in-wsl-ubuntu-let-it-sing/

他们基本上都说了同一件事,在 Windows 中安装 pulseaudio-1.1,在 ubuntu 中安装修改版的 pulseaudio,然后在 ubuntu 中播放的任何音频文件都会将其输出直接发送到在后台运行的 Windows pulseaudio,后者会将音频发送到硬件

Windows 版 Pulseaudio 无法正常工作。以下是我收到的错误:

PS E:\data_aba\Work\linux_dream\ORIGINAL\MYDOWNLOADS\pulseaudio-1.1\bin> .\pulseaudio.exe
W: [(null)] pulsecore/core-util.c: Secure directory creation not supported on Win32.
W: [(null)] pulsecore/core-util.c: Secure directory creation not supported on Win32.
W: [(null)] pulsecore/core-util.c: Secure directory creation not supported on Win32.
W: [(null)] pulsecore/core.c: failed to allocate shared memory pool. Falling back to a normal memory pool.
W: [(null)] pulsecore/core-util.c: Secure directory creation not supported on Win32.
W: [(null)] pulsecore/core-util.c: Secure directory creation not supported on Win32.
W: [(null)] pulsecore/core-util.c: Secure directory creation not supported on Win32.
E: [(null)] modules/module-waveout.c: failed to parse module arguments.
E: [(null)] pulsecore/module.c: Failed to load module "module-waveout" (argument: "sink_name=output source_name=input record = 0"): initialization failed.
E: [(null)] daemon/main.c: Failed to load directory.
E: [(null)] daemon/main.c: Module load failed.
E: [(null)] daemon/main.c: Failed to initialize daemon.
W: [(null)] pulsecore/core-util.c: Secure directory creation not supported on Win32.  

我尝试在 cmd 和 powershell 中运行它,但出现相同的错误。如何修复此问题?

Windows 版本:

Windows 10 家庭版 64 位版本 1909 操作系统内部版本:18363.778

答案1

作为对上述答案的进一步评论,我想补充一点,nssm(https://nssm.cc/) 是适用于现代 Windows“服务”集成的适当的应用即服务管理器,我已成功使用它在启动/登录/等时运行 Pulse(和其他项目),为 WSL 和实际 Linuxen 提供音频,以实现多平台单端点音频解决方案。

(我很想将此作为评论而不是答案发布,但我没有声誉。)

答案2

E: [(null)] pulsecore/module.c: Failed to load module "module-waveout" (argument: "sink_name=output source_name=input record = 0"): initialization failed.

等号周围不应该有空格。将“record = 0”更改为“record=0”

相关内容