我的系统有一个 6 通道 USB 麦克风和一个录制音频的软件。我必须确保如果 USB 麦克风可用(已插入),程序将使用它的第一个通道进行音频录制。
麦克风可能在一段时间内不可用(拔掉插头)。当再次插入时,我必须确保程序使用最近插入的麦克风。当我们的外部麦克风不可用时,内部音频 IC 会显示为正在使用的源设备(但由于 3.5 毫米音频插孔上没有麦克风,因此无法录音)。
麦克风有 6 个通道,分别为左前、右前、左后等,左前为所需通道。我使用 module-remap-source 创建一个虚拟源并将其设置为默认值:
pactl load-module module-remap-source master=alsa_input.MIC_NAME.multichannel-input master_channel_map=front-left channel_map=front-left remix=false
pactl set-default-source alsa_input.MIC_NAME.multichannel_input.remapped
如果我在这些命令之后启动程序,一切都会正常。
问题:
用户可以在运行时随时连接和拆卸 USB 麦克风。当麦克风被分离并再次连接时,单通道的虚拟源消失。我需要重新运行上面写的命令。有没有办法让这个虚拟源永久存在?
另外,我将不胜感激有关如何在检测到麦克风后重新启动音频软件以使其使用正确的源(或确保软件切换到正确的源)的提示
它是一个封闭的系统,Ubuntu Server,没有鼠标/键盘/显示器。系统必须能够自行理解这些事件。