我已通过蓝牙将 Raspberry Pi(运行 Ubuntu 20)连接到手机。它运行良好,a2dp 工作正常。我现在也希望通话正常,但发现自己无法更改卡的配置文件。
输出pactl list cards
:
Profiles:
a2dp_source: High Fidelity Capture (A2DP Source) (sinks: 0, sources: 1, priority: 20, available: yes)
headset_audio_gateway: Headset Audio Gateway (HSP/HFP) (sinks: 1, sources: 1, priority: 10, available: no)
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: off
我确实在 ofono 测试目录中运行了 enable-modem
我有 Bluez 5.54 Pulsaudio 13.99.1 Ofono 1.31
最糟糕的是,不久前我设法让它在我的 ubuntu 笔记本电脑上运行,但我不记得我做了/改变了什么来让它运行。
如果您知道如何让它发挥作用,我将不胜感激!
答案1
在 Ubuntu 20.04 中,a2dp 和 earphone_audio_gateway (HSP/HFP) 之间的切换是自动进行的。我确实使用了 ofono,因为它在许多线程中都有建议,例如这个:如何将 Ubuntu PC 设置为蓝牙耳机来接听电话
您可以通过使用所选的编辑器(我的是 vim)添加到文件来强制切换:
vim /etc/pulse/default.pa
以下行:
"load-module module-bluetooth-policy auto_switch=2"
至章节:
.ifexists module-bluetooth-discover.so
load-module module-bluetooth-policy auto_switch=2
load-module module-bluetooth-discover headset=ofono
.endif
但我认为自 ubuntu 20.04 最新版本以来,此设置已经是 pulseaudio 中的默认设置。
事实上,也许你遇到的问题和我一样:a2dp 多媒体播放区(youtube、音乐、系统声音等...)从 Android 到 Ubuntu 蓝牙耳机工作正常,a2dp 和 HSP/HFP 之间的自动切换也工作正常。但是:a2dp 能够通过线路输出或耳机等进行播放...而 HSP/HFP 由于某种原因在激活时无法播放音频或使用麦克风。事实上它可以工作,但必须手动将输入和输出源切换到耳机源,例如:
Input: Headset > FrontMicrophone
Output: Headset > Headphones
在“耳机音频网关 (HSP/HFP)”模式下。在我看来,ubuntu 会自动切换到哪个模式。您可以在系统上安装 pulseaudio (pavucontrol) 后查看哪种模式处于活动状态,打开 pavucontrol > 配置后,您将看到您的手机(我的是 Galaxy S8+)的配置文件为“关闭”、“高保真捕捉 A2DP”和“耳机音频网关 (HSP/HFP)”。您应该看到操作系统在您的手机播放 YouTube 等媒体时自动切换它们,然后切换到电话通话,反之亦然。
如何实现?我确实使用:
声音切换器指示器版本 2.3.4 由 Dmitry Kann 为此目的编写。
sudo apt-add-repository ppa:yktooo/ppa
sudo apt-get update
sudo apt-get install indicator-sound-switcher
因此对我来说,切换效果很好,只是 HSP/HFP 的音质不如 a2dp 那么完美,而且对我来说最令人沮丧的是,我总是必须手动切换到:
Input: Headset > FrontMicrophone
Output: Headset > Headphones
如上所述,这非常烦人。
我尝试了两天为配置文件设置默认输入和输出:耳机音频网关(HSP/HFP),但直到现在我还没有找到解决方案。
因此,通过这种手动切换,您的手机发送和接收音频可能工作正常(我的手机也是如此)。但我们仍然需要手动切换麦克风输入和耳机音频输出。