How use PulseAudio and JACK?
How use PulseAudio and JACK?
如何同时使用 JACK 和 PulseAudio ?
现在许多linux 用户正在使用 PulseAudio 作为他们的默认音频服务来处理所有的音频回放(媒体播放器, 桌面提醒,互联网浏览器和更多)。这是几个关于同时使用JACK 和 PulseAudio 的意见 :
当PulseAudio运行时, JACK 不能打开同一块被Pulse占用的声卡.即使理论上 ALSA 提供了这一机制(例如”DMIX“设备访问)它还不足以支持两种驱动可靠运行。
PulseAudio 和 JACK对很多人来说有着相似的目标,并且他们想知道问什么他们不可能取代对方。然而,除了表面上的共同点,他们真的没有什么相似性,PulseAudio 致力于桌面和移动音频需求. 他不尝试涉足低延时应用,但却提供了设备无缝切换,网络访问,全局音量控制和其他伟大的功能。
JACK致力于专业音频需求和音乐创作用户, 他提供尽可能少的延时, 应用程序和硬件之间的完整路由选择的灵活性。
在同一台机器上安装 PulseAudio 和 JACK 可能有问题。 这里有几个选择。一些试着摆脱他们之间的关系从而独立使用JACK 或者 PulseAudio所以他们之间没有音频流。一些把他们连接起来使相互监听对方成为可能。
方案 1: 不要同时使用 PulseAudio 和 JACK
典型的jack用户不期望连接PulseAudio和JACK。许多用户完全不会使用PulseAudio,也不会安装它。试着把PulseAudio从计算计里删除,或者禁用。系统中的其他应用程序会把声音发送到JACK。你不妨看看细节解释“如何连接音频来源/音频输出” [转到 FAQ]http://jackaudio.org/faq。
方案 2: 用两块声卡
许多JACK用户都有不止一块声卡。他们大多有一块内建的声卡,一般是消费级的设备,通常有许多限制导致不适合使用JACK。用户随后添加的声卡, 可能是 安装到机器内部的声卡(PCI) 或者通过火线连接的 火线设备 或者 USB声卡。
两块支持ALSA的声卡
在这种情况下你需要先定义 PulseAudio 和 JACK 各自使用什么设备。在终端里运行如下的代码:cat /proc/asound/cards 你得到的的输出可能像这个样子:
0 [SB ]: HDA-Intel - HDA ATI SB HDA ATI SB at 0xfcef8000 irq 16 1 [DSP ]: H-DSP - Hammerfall DSP RME Hammerfall DSP + Digiface at 0xfcff0000, irq 20 2 [NVidia ]: HDA-Intel - HDA NVidia HDA NVidia at 0xfe57c000 irq 32
(这台机器有三块声卡: 一块内建的, 一块用户添加的 “26 channel RME Hammerfall DSP” 设备, 和一个视频适配器。(不期望的,但是有一个HDMI 音频接口。)
所有的设备都可以用他们方括号([])里的的名字来访问。一般情况下,名字只是 "hw:" 和 声卡名字 的结合. 比如说,"hw:DSP" 指的是清单里的 “RME Hammerfall DSP” , 而 "hw:SB" 指的是 内建声卡. 你的系统里的情况可能不同。
或者你可以在命令行里输入:-d hw:DSP 到JACK后端来告诉JACK使用那个设备。
方案3:当有PulseSound回放任务时自动暂停JACK。
如果你已经开始使用QJackctl,你可以打开QJackctl
主面版上的"Setup”对话框。选择“options”标签页,然后编辑"Server path"字段。
插入"pasuspsender"(发送暂停信号的条件) --不管前面是什么东西(或许只是像jackd之类的东西),比方说,
你的“server path”里面已经有了“jackd”字段,那么就像这样写上:
pasuspender -- jackd
这将使PulseSound在JACK运行时将自己挂起。并在JACK退出(或崩溃)后重新开始。
如果你要用其他的方式启动JACK,你需要弄清楚如何使用 pasuspender -- 当你使用命令行的时候。