刚刚在Fedora上进行了Jack和Pulse共存的低谷追求。通常,我对Pulseaudio满意,但有时需要Jack音频。
我的解决方案适用于Fedora 23。
dnf install jack-audio-connection-kit jack-audio-connection-kit-dbus qjackctl
不要触摸/etc/pulse/default.pa!
配置qjackctl
〜/ .config / rncbc.org / QjackCtl.conf有一个相关的片段
[Settings]
Server=jack_control start
Driver=alsa
InDevice="hw:PCH,0"
OutDevice="hw:PCH,0"
pactl的接收器名称可以通过以下命令找到:
pacmd list-sinks
〜/ .config / rncbc.org / QjackCtl.conf还有一个片段来显示完整的命令
[Options]
...
StartupScript=true
StartupScriptShell=pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1
PostStartupScript=true
PostStartupScriptShell=pactl set-default-sink jack_out
ShutdownScript=false
ShutdownScriptShell="pactl unload-module module-jack-sink; pactl load-module module-jack-source"
PostShutdownScript=true
PostShutdownScriptShell="pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 0; pactl set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo"
在那里,“启用D-Bus接口”对于Qjackctl本身很重要。
它是如何工作的
现在启动PC只能与PulseAudio一起使用。全自动工作就像没有杰克一样。
在启动Qjackctl之后,
- Qjackctl启动脚本在Plseuaudio中挂起主音频卡,并允许Jackj访问它“ pactl挂起接收器alsa_output.pci-0000_00_1b.0.analog-stereo 1”
- 杰克通过d总线“ jack_control start”启动
- 脉冲自动检测D-Bus上的插孔启动并加载插孔沉和插孔源。
- 启动脚本后的Qjackctl将Pulse中的默认接收器更改为jack_out。(我认为它本身并没有完成)“ pactl set-default-sink jack_out”(起初看起来没有必要,因为所有正在运行的PA客户端都切换到了新接收器,但是没有此命令,新应用程序就卡在了暂停接收器上)
因此系统重新配置为使用“ Pulse on Jack”。(我跳过了硬件输入挂起,因为无论如何我都没有使用它)
如果未选中“在应用程序终止上停止JACK音频服务器”,则可以关闭Qjackctl并重新运行它,而不会影响安装程序。
在通过Qjackctl停止Jack之后,所有一切都回到了整洁的Pulse!
- 通过Qjackctl在dbus上停止运行-“启用D总线接口”选项。
- d-bus自动从Pulseaudio中移除jack-source和jack-sink
- 脉冲音频的默认接收器已切换为声卡,因为插口消失了
- 关机脚本在Pulseaudio“ pactlsuspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1”中激活声卡后的Qjackctl
使用的工具
- jackd(来自pulseaudio-utils软件包)
- jack_control(来自软件包ack-audio-connection-kit-dbus)
- Qjackctl(来自package pulseaudio-utils)
- pactl从sctipts控制Pulseaudio(来自package pulseaudio-utils)