You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu Studio 24.04(默认PipeWire,无Studio Controls)下如何创建多命名的PulseAudio与Jackd桥接?

Ubuntu Studio 24.04(默认PipeWire,无Studio Controls)下如何创建多命名的PulseAudio与Jackd桥接?

嗨,我完全懂你现在的烦恼——原来靠Studio Controls轻松搞多个自定义名字的Pulse-Jack桥接的路子走不通了,换成PipeWire之后确实得换个玩法。不过别慌,用PipeWire自带的配置工具就能搞定,而且能精准控制每个桥接的名字,步骤其实挺清晰的:

第一步:确认必备组件已安装

Ubuntu Studio 24.04默认应该已经带了所有需要的PipeWire组件,但保险起见可以检查一下:

dpkg -l | grep pipewire

如果看到pipewire-jackpipewire-pulse不在列表里,就用下面的命令安装:

sudo apt install pipewire-jack pipewire-pulse

第二步:创建自定义桥接配置文件

PipeWire通过用户目录下的配置片段来管理自定义设备,我们先创建配置目录(如果不存在的话):

mkdir -p ~/.config/pipewire/pipewire.conf.d/

创建PulseAudio→Jack输出桥接(自定义名字)

每个桥接对应一个独立的.conf文件,这样方便管理和修改。比如我们要创建一个叫「Pulse-to-Jack-Music」的输出桥:

  1. 新建配置文件:
nano ~/.config/pipewire/pipewire.conf.d/50-pulse-jack-music.conf
  1. 粘贴以下内容,注意修改node.description为你想要的显示名称:
context.objects = [
    {
        factory = adapter
        args = {
            factory.name     = support.null-audio-sink
            node.name        = "pulse_jack_music_sink"  # 内部标识,唯一就行
            node.description = "Pulse-to-Jack-Music"    # 你要的自定义显示名
            media.class      = "Audio/Sink"             # 这是输出设备(Pulse→Jack)
            audio.position   = [ FL FR ]                # 声道配置,立体声就用FL FR
            target.object    = "jack-node"              # 指定连接到Jack
        }
    }
]
  1. Ctrl+O保存,Ctrl+X退出编辑器。

再创建第二个自定义桥接(比如语音专用)

重复上面的步骤,比如创建「Pulse-to-Jack-Voice」:

nano ~/.config/pipewire/pipewire.conf.d/50-pulse-jack-voice.conf

内容只需要修改内部标识和显示名:

context.objects = [
    {
        factory = adapter
        args = {
            factory.name     = support.null-audio-sink
            node.name        = "pulse_jack_voice_sink"
            node.description = "Pulse-to-Jack-Voice"
            media.class      = "Audio/Sink"
            audio.position   = [ FL FR ]
            target.object    = "jack-node"
        }
    }
]

(可选)创建Jack→PulseAudio输入桥接

如果需要把Jack的音频输出到PulseAudio,比如录制Jack的声音到Pulse应用,就创建输入桥:

nano ~/.config/pipewire/pipewire.conf.d/50-jack-to-pulse-mic.conf

内容如下,注意media.class改成Audio/Sourcefactory.name换成support.null-audio-source

context.objects = [
    {
        factory = adapter
        args = {
            factory.name     = support.null-audio-source
            node.name        = "jack_to_pulse_mic_source"
            node.description = "Jack-to-Pulse-Mic"
            media.class      = "Audio/Source"
            audio.position   = [ FL FR ]
            target.object    = "jack-node"
        }
    }
]

第三步:重启PipeWire让配置生效

所有桥接配置好之后,重启PipeWire服务加载新配置:

systemctl --user restart pipewire pipewire-pulse

验证桥接是否生效

  1. 打开Jack Control(qjackctl)启动Jack服务器,在「Graph」里就能看到你自定义名字的桥接端口;
  2. 打开PulseAudio音量控制(pavucontrol),在「播放」或「录制」标签页里,就能选择你创建的自定义桥接设备了。

小提示

  • 如果要删除某个桥接,直接删掉对应的.conf文件,再重启PipeWire就行;
  • 确保Jack服务器在PipeWire重启前已经启动,这样桥接能自动和Jack建立连接;
  • 声道配置可以根据需求改,比如单声道就写[ MONO ],5.1声道就写[ FL FR FC LFE BL BR ]

备注:内容来源于stack exchange,提问作者mark_orion

火山引擎 最新活动