![通过多个 USB 设备独立播放音频](https://linux22.com/image/96234/%E9%80%9A%E8%BF%87%E5%A4%9A%E4%B8%AA%20USB%20%E8%AE%BE%E5%A4%87%E7%8B%AC%E7%AB%8B%E6%92%AD%E6%94%BE%E9%9F%B3%E9%A2%91.png)
我需要能够通过多个 USB 耳机播放来自 RasPi 的单个本地音频源。我需要独立控制正在播放的耳机(一次 1 个,一次 2 个,...,一次全部)。
我一直在通过命令提示符使用 PulseAudio,并且能够同时在所有耳机上播放音频,但是我不知道如何在音乐仍在播放时独立打开/关闭耳机。我不完全确定它可能,因此我在这里问。
我的一些想法:(A)为每种耳机打开/关闭情况创建接收器组,并动态更改不同源组的输入(B)同时在所有耳机上播放音频,但将音量调整为 0需要关闭的接收器(耳机)
注意:我见过的许多示例都涉及控制附加到 IP 地址的音乐流。我不想这样做,我希望在 RasPi 上本地保存音频文件。
任何帮助将不胜感激,我对此很陌生。
答案1
如果除了这个单一流之外没有其他音频输出到耳机,您可以module-combine-sink
为所有耳机设置一个组合接收器,然后您可以根据需要将耳机接收器本身静音。
列出所有接收器:
pacmd 列表接收器 | grep 名称:
创建一个组合接收器(当然使用您需要的接收器名称而不是示例名称):
pacmd 加载模块模块组合接收器 sink_name=combined sink_properties=device.description="组合接收器" 从属=alsa_output.usb-first-sink.analog-stereo,alsa_output.usb-second-sink.analog-stereo,...
然后在组合接收器上播放流,并静音
pacmd set-sink-mute alsa_output.usb-first-sink.analog-stereo true
或取消静音
pacmd set-sink-mute alsa_output.usb-first-sink.analog-stereo false
按要求。
如果有是其他音频输出,我想可以null-sink
在组合接收器和每个耳机接收器之间放置一个可变的。