音频输出到脉冲音频和HDMI?
在我的船上,树莓派3 B巴斯特有两种用途:
Pi启动进入LXDE,LXDE运行一个bash脚本通过蓝牙连接到无线电(并按照BluManCZ在https://UNIX . stack exchange . com/questions/334386/how-to-set-up-automatic-connection-of-bluetooth-headset中的回答继续尝试连接),然后自动启动Kodi。
音乐由Android亚策应用程序控制。
当我想播放电影时,我会停止使用Yatse应用程序播放音乐,然后打开投影仪并使用无线键盘播放电影。但我必须手动转到Kodi系统设置并选择HDMI作为声音输出。
当我看完电影后,我正确地关闭了电源。但是,如果我忘记首先手动将声音输出放回Kodi中的Pulseaudio,那么当我下次启动它,并期望获得音乐时,我什么也听不到,因为它仍将传输到HDMI。然后我必须去打开投影仪,这样我就可以用键盘把它切换回pulseaudio。
那么,有没有什么方法可以让它既输出到pulseaudio(蓝牙)又输出到HDMI,这样无论哪个设备打开(收音机或投影仪),我都能发出声音?
或者我可以让它自动检测哪个是活动的并输出到那个?
我如何才能无缝地从通过蓝牙播放音乐切换到通过投影仪播放视频?
请记住,当我给Pi通电时,可能会一个或另一个,或者收音机和投影仪都会通电。
好的,我想我用以下步骤解决了这个问题。这说明蓝牙输出到a2dp扬声器可以工作(请参阅我在原始问题中为此采取的步骤):
安装paprefs:
$ sudo apt install paprefs
然后使用终端在桌面上运行它:
$ paprefs
这将打开一个带有几个选项卡的GUI窗口。选择“同时输出”选项卡,该选项卡提供一个复选框来启用或禁用该功能。打开它。
然后重新启动pulseaudio
$ killall pulseaudio
现在你可以去VLC,选择音频标签发送输出到同步输出。声音会传到两个地方。不幸的是,当你关闭VLC时,它会回到HDMI,你必须再次手动更改。在Kodi中,它也不作为一个选项出现。
因此,还有几个步骤:
编辑pulseaudio的默认配置
$ sudo nano /etc/pulse/default.pa
并在加载任何其他模块之前,在开头添加以下行:
load-module module-combine-sink sink_name=combined
这将设置一个新的虚拟设备,并将其输出到所有其他设备。
当你在那里的时候,确保这条线也在那里,在某个地方(可能更远)
module-default-device-restore
如果系统发生变化(例如HDMI关闭或打开),这将恢复默认设备。
退出nano并通过执行ctrl-x并对提示说yes来保存文件。
列出pulseaudio已知的可用设备:
$ pacmd list-sinks | grep -e 'name:' -e 'index:'
现在应该列出蓝牙,插孔,HDMI以及组合设备。带有星号的那个是当前的回退设备。你想让它成为“组合”的水槽。为此,请执行以下操作:
$ sudo set-default-sink combined
$ sudo reboot 0
再次检查,这次组合的旁边应该有星号:
$ pacmd list-sinks | grep -e 'name:' -e 'index:'
现在,当你玩VLC或Kodi时,声音应该同时传到HDMI和蓝牙。
这似乎在完全关闭和加电后仍能幸存下来,所以我认为它达到了目标。我还没有尝试过从不同的输出设备开始的所有不同的组合,但我希望它能工作。