Bluetooth Audio ALSA Backend allow bluetooth audio without PulseAudio.

This project is a rebirth of a direct integration between Bluez and ALSA. Since Bluez >= 5, the build-in integration has been removed in favor of 3rd party audio applications. From now on, Bluez acts as a middleware between an audio application, which implements Bluetooth audio profile, and a Bluetooth audio device.

github source : bluez-alsa

Add bluez-alsa to an AGL image

You can add bluez-alsa to your image

IMAGE_INSTALL_append = "bluez-alsa"

Check bluez-alsa status

You can check the bluez-alsa status by running:

systemctl status bluez-alsa.service

Stop pulseaudio

You must disable pulseaudio if you want to use bluez-alsa

systemctl --user stop pulseaudio

or disable pulseaudio bluetooth support

vi /etc/pulse/
#load-module module-bluetooth-policy

#load-module module-bluetooth-discover

Connect your Bluetooth device

You need to connect a bluetooth device

$ bluetoothctl
[bluetooth]# pair ${BT_ADDR}
[bluetooth]# connect ${BT_ADDR}
[bluetooth]# info ${BT_ADDR}

Here somes documentation links:

Test bluez-alsa speacker


aplay -D bluealsa:HCI=hci0,DEV=${BT_ADDR},PROFILE=a2dp ./piano2.wav

Add bluez-alsa pcm config to alsa

vi /etc/asound.conf
# Bluetooth headset
pcm.btheadset {
        type plug
        slave.pcm {
                type bluealsa
                device "${BT_ADDR}"
                profile "a2dp"
        hint {
                show on
                description "Bluetooth Audio ALSA Backend"

Doc asoundrc

Test bluez-alsa pcm

aplay -D btheadset ./piano2.wav

Test gstreamer player

gst-launch-1.0 uridecodebin uri=file:///mnt/Holy-Mountain.mp3  ! alsasink device=btheadset

Test bluez-alsa phone

After connected your phone with bluez:

bluealsa-aplay ${BT_ADDR}