我最近换到了 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
我想将所需的命令移到我的.profile
文件中,但是每次登录时这都会重复该过程,导致创建许多我不需要也不想要的额外接收器。
有没有办法删除用创建的旧空接收器pactl load-module module-null-sink
,或者编写一个if
块来包装它,如果这些接收器已经存在则不会触发?
答案1
与其将这些命令放入我们的中,不如.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
在启动 pulseaudio 声音服务器时将始终加载所需的 NULL 接收器。
删除已加载的接收器pactl
或pacmd
,即没有设置在我们default.pa
可以最快速地完成
pulseaudio -k
此命令将终止正在运行的 pulseaudio 实例,然后使用 中定义的值立即重新启动它(在默认设置中)default.pa
。