自动创建 PulseAudio 零接收器

Ada*_*ith 5 command-line pulseaudio

我最近切换到 Ubuntu,并尝试模仿我过去在 Windows 上使用虚拟音频线所做的事情。我发现了一个很棒的教程,它完全符合我想要的功能,但是每次我必须重新启动机器时输入所有这些冗长的命令当然会变得有点烦人。我的命令如下:

pactl load-module module-null-sink sink_name=GAME sink_properties=device.description="GAME"
pactl load-module module-null-sink sink_name=MUSIC sink_properties=device.description="MUSIC"
pactl load-module module-combine-sink sink_name=GAME_and_out sink_properties=device.description="GAME_and_out", slaves=0,1
pactl load-module module-combine-sink sink_name=MUSIC_and_out sink_properties=device.description="MUSIC_and_out", slaves=0,2
Run Code Online (Sandbox Code Playgroud)

我想将所需的命令移至我的.profile文件中,但这会在每次登录时重复该过程,导致创建许多我不需要也不想要的额外接收器。

有没有办法删除使用 创建的旧空接收器pactl load-module module-null-sink,或者编写一个if块将其包装在其中,如果这些接收器已经存在则不会触发?

Tak*_*kat 5

与其将这些命令放入我们的文件中,.profile建议将所需的所有模块添加到我们的文件中/etc/pulse/default.pa或我们家中该文件的副本中~/.pulse/default.pa~/.config/pulse/default.pa对于每个用户设置(这将覆盖 中定义的所有设置/etc/pulse/default.pa)。

将这些行添加到该文件中:

load-module module-null-sink sink_name=GAME sink_properties=device.description="GAME"
load-module module-null-sink sink_name=MUSIC sink_properties=device.description="MUSIC"
load-module module-combine-sink sink_name=GAME_and_out sink_properties=device.description="GAME_and_out", slaves=0,1
load-module module-combine-sink sink_name=MUSIC_and_out sink_properties=device.description="MUSIC_and_out", slaves=0,2
Run Code Online (Sandbox Code Playgroud)

在启动pulseaudio声音服务器时将始终加载所需的NULL接收器。

删除已通过pactl或加载的水槽pacmd,即我们default.pa可以通过以下方式快速完成设置:

pulseaudio -k
Run Code Online (Sandbox Code Playgroud)

此命令将终止正在运行的pulseaudio实例,并使用default.pa.

  • 这“超越”了一个完美的解决方案。它纠正了一个误解,给出了一个解决方案,并给了我作为补充提出的最后 XY 问题的答案。太感谢了! (2认同)