警告
最新的来源使用一些核心组件的新名称:
bluealsa
守护程序现在称为bluealsad
bluealsa-cli
实用程序现在称为bluealsactl
有关更多信息,请参见从版本4.3.1或更早版本迁移的Wiki指南。
该项目是Bluez和Alsa之间直接整合的重生。由于Bluez> = 5,因此已删除内置集成,以支持第三方音频应用。从现在开始,Bluez充当音频应用程序之间的中间件,该应用程序实现了蓝牙音频配置文件和蓝牙音频设备。
当前的状态是,要从/到蓝牙设备,必须安装通用音频服务器,例如PipeWire或Pulseaudio,或使用Bluez版本4,该版本4被贬低且未经许可。
该项目创建并维护了一种名为Bluealsa的产品,它可以通过该产品获得与PulseAudio相同的蓝牙音频配置文件支持,但依赖性较少,并且在软件堆栈中的级别较低。 Bluealsa登记Bluez中所有已知的蓝牙音频曲线,因此从理论上讲,每个蓝牙设备(具有音频功能)都可以连接。
Bluealsa专为用于小型,低功率,专用的音频或视听系统而设计,在该音频或视听系统中,不需要脉冲或管道的高级音频管理功能。目标系统必须能够与其所有音频应用程序直接与ALSA接口正确运行,并且一次只使用每个蓝牙音频流,一次只有一个应用程序。在这样的系统中,Bluealsa为现有的ALSA声卡支持添加了蓝牙音频支持。请注意,这意味着应用程序受ALSA API的功能的限制,并且不可用音频服务器的高级音频处理功能(例如Pulseaudio和PipeWire)。
Bluealsa由守护程序bluealsad
,Alsa插件和许多实用程序组成。基本上下文在此图中显示:
流程图TD
ClassDef外部填充:#eee,stroke:#333,卒中宽度:4px,颜色:黑色;
ClassDef Bluealsa填充:#BBF,中风:#333,卒中宽度:4PX,颜色:黑色;
a [蓝牙适配器] <-> b((蓝牙<br/>守护程序))
a <-> c((蓝色守护程序))
b < - dbus-> c
c < - dbus-> g(((bluealSactl)))
c < - dbus-> d((bluealsa-aplay))
d-> e([[alsa libasound])
e-> k [扬声器]
c < - dbus-> f((bluealsa <br/> alsa插件))
f <-> h([[alsa libasound])
h <-> i((Alsa <br/>应用程序))
c < - dbus-> J((“其他D-Bus <br/>客户端”))
c <-> l(((alsa midi <br/> sequencer))
l <-> m([[alsa libasound])
m <-> n((Alsa Midi <br/>应用程序))
A类,B,E,H,I,J,K,L,M,N外部;
C级,D,F,G Bluealsa;
Bluealsa的心脏是守护程序bluealsad
,它与Bluez Bluetooth Daemon bluetoothd
和本地蓝牙适配器接口。它处理A2DP,HFP和HSP的配置文件连接和配置逻辑,并通过D-Bus将所得的音频流提供给应用程序。
BlueALSA包含ALSA插件,这些插件隐藏了所有D-Bus细节,并允许应用程序使用ALSA PCM和混音器接口,以便现有的ALSA应用程序可以与使用声卡PCMS和MIXER相同的方式访问蓝牙音频设备。
如果是BLE MIDI,守护程序会直接在ALSA MIDI Sequencer中创建一个简单的MIDI端口,以便ALSA MIDI应用程序可以以与将其连接到本地MIDI设备相同的方式连接到远程BLE MIDI设备。
Bluealsa还包括许多实用程序应用程序。特别值得注意的是:
BluealSactl
允许BlueALSA系统的命令行管理的应用程序。
Bluealsa-aplay
一个应用程序来简化使用BluealSA构建蓝牙扬声器的任务。
bluealsa-rfcomm
一个命令行应用程序,可为HFP/HSP设备访问RFCOMM终端。
文件安装中包含构建和安装说明。MD,Wiki中提供了更详细的指南。
Bluealsa的主要组成部分是一个名为bluealsad
的程序。默认情况下,该程序应在系统启动期间作为根。它将在D-Bus System Bus中注册org.bluealsa
服务,该服务可用于访问配置的音频设备。通常,Bluealsa充当Bluez和Alsa之间的代理。
bluealsad
守护程序必须运行,以配对,连接和使用远程蓝牙音频设备。为了将音频流式传输到蓝牙耳机,首先必须连接设备。如果您不熟悉Linux上的蓝牙配对和连接过程,则Wiki中有一个基本指南:蓝牙配对和连接。
有关bluealsad
命令行选项的详细信息,请咨询Bluealsad手册页。
连接蓝牙音频设备时,可以像其他任何PCM设备一样,使用带有ALSA应用程序的bluealsa
虚拟PCM设备:
aplay -D bluealsa Bourree_in_E_minor.wav
如果连接了多个蓝牙设备,则可以将目标指定为PCM的参数:
aplay -D bluealsa:XX:XX:XX:XX:XX:XX, Bourree_in_E_minor.wav
请注意,此PCM设备基于ALSA软件PCM I/O插件 - 它没有关联的声卡,并且它将在ALSA内核Proc Interface中可用。
bluealsa
PCM设备的设置参数可以在Local .asoundrc
配置文件中设置:
cat ~ /.asoundrc
defaults.bluealsa.service " org.bluealsa "
defaults.bluealsa.device " XX:XX:XX:XX:XX:XX "
defaults.bluealsa.profile " a2dp "
defaults.bluealsa.delay 10000
Bluealsa还允许从连接的蓝牙设备捕获音频。为此,必须使用捕获PCM设备,例如:
arecord -D bluealsa -f s16_le -c 2 -r 48000 capture.wav
除了用于高质量音频的A2DP配置文件外,Bluealsa还允许通过SCO链接使用电话音频连接。可以使用内置的HSP/HFP支持,该支持仅在规范中实现与音频相关的部分,也可以将ONO服务作为后端使用。为了打开SCO Audio连接,一个人应切换到sco
配置文件,如下所示:
aplay -D bluealsa:DEV=XX:XX:XX:XX:XX:XX,PROFILE=sco Bourree_in_E_minor.wav
为了控制输入或输出音频级别,可以使用提供的bluealsa
控制插件。此插件允许调整音频流的音量或简单地静音/取消静音,例如:
amixer -D bluealsa sset ' <control name> ' 70%
其中控制名称是带有控制元件后缀的连接蓝牙设备的名称,例如:
amixer -D bluealsa sset ' Jabra MOVE v2.3.0 A2DP ' 50%
有关Bluealsa ALSA PCM设备和混音器设备的完整详细信息,请咨询Bluealsa插件手册页。
Bluez-Alsa Project Wiki还有许多文章,提供了更多使用这些插件的示例。
有关更高级的ALSA配置,请咨询Alsaproject Wiki页面提供的ASOUNDRC在线文档。
可以使用Bluealsa创建蓝牙驱动的扬声器。为此,需要将音频信号从BlueALSA捕获PCM转发到其他一些播放PCM(例如内置音频卡)。为了简化此任务,Bluealsa包括一个名为bluealsa-aplay
的程序,该程序充当简单的Bluealsa播放器。连接蓝牙设备(例如智能手机),并执行以下操作:
bluealsa-aplay XX:XX:XX:XX:XX:XX
有关bluealsa-aplay
的命令行选项的详细信息,请咨询Bluealsa-aplay手册页。关于Bluez-Alsa项目Wiki的文章也有一些文章,列举了其使用的示例。
可直接从Bluealsa d-Bus API或使用bluealsa-aplay
作为方便的包装器,可直接从以下内容获得可用的蓝色PCMS(由具有音频功能的连接蓝牙设备提供)列表:
bluealsa-aplay -L
该项目欢迎代码,文档和测试的贡献。
请参阅《贡献指南》以获取详细信息。
在故障排除指南中讨论了最常见的错误。请检查该文件以查看是否已经有解决您的问题的解决方案。
如果您无法在该文档中找到解决方案或通过阅读手册页,请搜索以前的问题(开放和关闭),并在提出新问题之前咨询Wiki。不幸的是,Wiki没有由Web搜索引擎索引,因此在线搜索您的问题不会发现其中的信息。
如果将问题报告为新问题,请使用适当的Bluez-Alsa Github发出报告模板,并尽可能完全完成模板的每个部分。
Bluealsa是根据MIT许可条款获得许可的。有关详细信息,请参见许可证文件。