Para usar su máquina Ubuntu como un dispositivo Bluetooth a2dp, primero debe configurarlo para que se registre como un punto final "sumidero a2dp".
El paquete bluez en Ubuntu (10.04 y superior) incluye una utilidad llamada sdptool que puede usarse para verificar si un dispositivo Bluetooth está configurado como un receptor a2dp o no. Aquí está la salida de sdptool ejecutada en mi auricular Bluetooth (la dirección se toma del cuadro de diálogo "Configuración de Bluetooth" en el centro de control de gnome):
$ sdptool search --bdaddr 00:18:16:3A:3B:D4 a2snk
Searching for a2snk on 00:18:16:3A:3B:D4 ...
Service RecHandle: 0x10002
Service Class ID List:
"Audio Sink" (0x110b)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 25
"AVDTP" (0x0019)
uint16: 0x102
Profile Descriptor List:
"Advanced Audio" (0x110d)
Version: 0x0102
$
y aquí está el resultado cuando se ejecuta contra mi máquina Ubuntu local:
$ sdptool search --bdaddr local a2snk
Searching for a2snk on FF:FF:FF:00:00:00 ...
$
Esto muestra que la máquina Ubuntu no se anuncia como un sumidero a2dp. Sin embargo, se está publicitando como una fuente a2dp:
$ sdptool search --bdaddr local a2src
Searching for a2src on FF:FF:FF:00:00:00 ...
Service Name: Audio Source
Service RecHandle: 0x10003
Service Class ID List:
"Audio Source" (0x110a)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 25
"AVDTP" (0x0019)
uint16: 0x102
Profile Descriptor List:
"Advanced Audio" (0x110d)
Version: 0x0102
Esto permite que la máquina Ubuntu se empareje correctamente con los auriculares como fuente de audio, pero no permite usar la máquina Ubuntu como salida (receptor) para audio Bluetooth.
Si edita /etc/bluetooth/audio.conf
, puede habilitar el soporte de sumidero a2dp agregando esta línea debajo de la [General]
sección:
Enable=Source
Esto tiene un nombre contradictorio, ya que lo que estamos agregando aquí es la compatibilidad con el receptor Bluetooth, no la compatibilidad con la fuente, y en contradicción con el comentario en este archivo que afirma que todos los servicios implementados están habilitados de forma predeterminada. :(
Después de realizar este cambio, deberá reiniciar bluetoothd ejecutando sudo service bluetooth restart
.
Si previamente ha emparejado su dispositivo Android y su computadora Ubuntu mientras intentaba hacer este trabajo, necesitará eliminar el emparejamiento en ambos lados y volver a emparejarlos para que Android reconozca Ubuntu como un dispositivo de audio disponible.
Una vez que haya hecho esto, el dispositivo Android debería aparecer como un dispositivo de entrada en PulseAudio. Si PulseAudio no detecta la nueva fuente de audio Bluetooth, es posible que deba instalar y cargar el módulo Bluetooth, desde la línea de comandos:
sudo apt-get install pulseaudio-module-bluetooth
pactl load-module module-bluetooth-discover
Luego, debe decirle a PulseAudio que enrute esta entrada de audio a su salida / receptor (como sus altavoces o auriculares Bluetooth) utilizando una conexión de bucle invertido (una línea recta desde una fuente a un receptor).
Las versiones posteriores de PulseAudio pueden tener una política de módulo bluetooth incluida y puede que ya haya configurado un dispositivo de bucle invertido para usted, pero este no parece ser el caso más común.
Una forma semiautomática para configurar la conexión de bucle invertido, si también tiene instalado el programa GUI de pavucontrol, es simplemente cargar el módulo de bucle invertido y configurarlo mediante pavucontrol, ya que PulseAudio recordará la configuración. La carga del módulo se realiza desde el comando usando pactl:
pactl load-module module-loopback
No temas si aún no escuchas nada, o si obtienes efectos de retroalimentación extraños, tenemos que decirle al dispositivo recién creado de qué fuente recibir entrada y a qué sumidero enviar primero la salida.
Abra pavucontrol y abra su pestaña Configuración. Asegúrese de que su dispositivo Bluetooth aparezca aquí (después de emparejarlo con blueman-manager u otra herramienta Bluetooth) y que el perfil esté configurado en A2DP. Cambie a la pestaña Dispositivos de entrada y asegúrese de que su dispositivo aparezca aquí también y que no esté silenciado. Ahora cambie a la pestaña Grabación y haga que la conexión de bucle invertido recién creada use su dispositivo como fuente con el cuadro de selección junto al botón de silencio. Cambie a la pestaña Reproducción para seleccionar el sumidero que la conexión de bucle invertido debe usar de la misma manera. Si el dispositivo de bucle invertido no aparece en las pestañas, asegúrese de que todas las transmisiones se muestren usando el cuadro de selección en la parte inferior de cada pestaña.
Ahora debería escuchar el audio de su dispositivo, si se está reproduciendo, en sus altavoces o en cualquier receptor de salida que haya seleccionado. Cuando su dispositivo está desconectado, el dispositivo de bucle invertido recurrirá a un sumidero y fuente disponible, lo que puede no ser deseable, así que asegúrese de silenciar el dispositivo de bucle invertido hasta que lo necesite. La conexión de bucle invertido restaurará el mismo receptor / fuente la próxima vez que se conecte el mismo dispositivo Bluetooth gracias al módulo - * - módulos de restauración.
Si eso no funciona , o si no tiene instalado pavucontrol, puede configurar el loopback usando el siguiente método:
pactl load-module module-loopback source_dont_move=yes source=$BTSOURCE sink=$SINK
(Reemplace $BTSOURCE
con el nombre de la fuente de su dispositivo Bluetooth como lo ve PulseAudio, por ejemplo bluez_source.14_DA_E9_2A_D7_57
; y reemplácelo $SINK
con el nombre de la salida de PulseAudio a la que desea enviar la transmisión de audio, por ejemplo:. alsa_output.pci-0000_00_1b.0.analog-stereo
Puede omitir por completo el argumento del receptor y hacer que retroceda a un fregadero activo, y cámbielo más tarde a través de pavucontrol.)
- Puedes encontrar
$SINK
con pactl list sinks
, se muestra despuésName:
- Del mismo modo puedes ver el
$BTSOURCE
conpactl list sources
- El
source_dont_move
argumento evita que la conexión de bucle invertido vuelva a caer a otra fuente de audio cuando se desconecta el dispositivo Bluetooth. En su lugar, se elimina y tendrá que configurarlo de nuevo la próxima vez.
Así es como se vería un ejemplo (¡recuerde reemplazarlo :
con _
en la dirección Bluetooth!):
pactl load-module module-loopback source_dont_move=yes source=bluez_source.14_DA_E9_2A_D7_57 sink=alsa_output.pci-0000_00_14.2.analog-stereo
Si la carga del módulo de respaldo falla, intente eliminar el source_dont_move=yes
argumento, primero estuvo disponible en la versión 1.0. Sin embargo, tenga cuidado de eliminar esta conexión de bucle invertido antes de soltar este audio, o si, por ejemplo, el micrófono de su computadora portátil no está silenciado, puede recibir comentarios muy malos. Para abandonar esta conexión de bucle invertido manualmente cuando haya terminado, ejecute:
pactl unload-module $(pactl list short modules | grep "loopback.*$BTSOURCE" | cut -f1)
Nuevamente, reemplácelo $BTSOURCE
con el nombre de la fuente PulseAudio que se refiere a su dispositivo Bluetooth. También puede descargar el módulo utilizando la identificación devuelta por el comando load-module:
$ pactl load-module module-loopback source_dont_move=yes source=bluez_source.14_DA_E9_2A_D7_57 sink=alsa_output.pci-0000_00_14.2.analog-stereo
15
$ pactl unload-module 15
Referencias