![在火线设备准备就绪之前启动应用程序](https://linux22.com/image/141874/%E5%9C%A8%E7%81%AB%E7%BA%BF%E8%AE%BE%E5%A4%87%E5%87%86%E5%A4%87%E5%B0%B1%E7%BB%AA%E4%B9%8B%E5%89%8D%E5%90%AF%E5%8A%A8%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
要使用需要的音频应用程序jackd-firewire
,我必须按以下顺序启动:
- 启动硬件接口(在我的例子中是 Phonic 混合控制台)
- 启动杰克
- 启动音频应用程序
任何其他命令都会使音频应用程序抱怨“没有插孔”,所以我必须关闭它,然后运行上面的序列。
当硬件接口关闭时,该/dev/fw1
设备根本不存在。创建/dev/fw1
没有mknod
帮助 - jackd 不会使用这样的“死”设备启动。
与内置声卡相比
这与内置声卡形成对比,在内置声卡中,当计算机运行时 /dev-device 始终存在。
与 Pulseaudio 对比
即使将pulseaudio配置为使用火线输出也允许我关闭并重新打开硬件接口。声音会停止并恢复,并且应用程序不会抱怨(我只用 google-chrome 播放电影进行了测试)。
乌德夫
我知道如何使用udev
来启动jackd /dev/fw1
。但我仍然必须退出音频应用程序,以防我忘记在启动应用程序之前启动硬件 ifc。
我的问题
有没有办法让应用程序相信它可以连接到 jackd,即使 jackd 没有看到火线设备?理想情况下,我希望能够在应用程序运行时断开硬件连接,除了听不到声音之外,不会产生任何不良影响。
答案1
JACK通常配置为使用特定的音频设备,
如果音频设备不可用,JACK无法启动
如果JACK正在运行并且设备断开连接,JACK将崩溃
JACK 可以在驱动程序选项更改为“虚拟”的情况下启动,并且无需音频设备即可运行
我知道如何使用 和 手动将其他音频设备添加到 JACK alsa_in
,并且alsa_out
可以使用类似的命令为输入和输出手动添加火线设备。但是,在断开设备之前,必须删除任何手动添加的与火线设备的连接,只有这里的增益不需要停止 JACK
考虑到您更喜欢在 Pulseaudio 中使用混音器,您可能会更好:
- 保持混音器在 Pulseaudio 中运行;
- 使用虚拟驱动程序运行 JACK;
- 使用 Pulseaudio JACK Sink 和 Pulseaudio JACK Source 连接将 JACK 中的应用程序连接到 Pulseaudio 中的混音器
(可能需要安装软件包pulseaudio-jack
才能获取接收器和源连接)