提问者:小点点

双音频输出到Pulseaudio蓝牙和HDMI树莓派3B巴斯特


音频输出到脉冲音频和HDMI?

在我的船上,树莓派3 B巴斯特有两种用途:

  1. 它运行Kodi播放通过蓝牙输出到汽车收音机的音乐,该收音机输出到扬声器。(花了两天的时间才让它发生,终于找到了 https://peppe8o.com/fixed-connect-bluetooth-headphones-with-your-raspberry-pi/)
  2. 它还播放输出到带有扬声器的HDMI投影仪的电影。

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通电时,可能会一个或另一个,或者收音机和投影仪都会通电。


共1个答案

匿名用户

好的,我想我用以下步骤解决了这个问题。这说明蓝牙输出到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和蓝牙。

这似乎在完全关闭和加电后仍能幸存下来,所以我认为它达到了目标。我还没有尝试过从不同的输出设备开始的所有不同的组合,但我希望它能工作。