Untuk menggunakan mesin Ubuntu Anda sebagai perangkat Bluetooth a2dp, Anda harus mengkonfigurasinya terlebih dahulu untuk mendaftar sebagai titik akhir "a2dp sink".
The bluez paket di Ubuntu (10.04 dan di atas) termasuk utilitas yang disebut sdptool yang dapat digunakan untuk memeriksa apakah perangkat Bluetooth dikonfigurasi sebagai wastafel A2DP atau tidak. Ini adalah output dari sdptool yang dijalankan terhadap headset Bluetooth saya (alamatnya diambil dari dialog "Pengaturan Bluetooth" di gnome-control-center):
$ 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
$
dan inilah output ketika dijalankan melawan mesin Ubuntu lokal saya:
$ sdptool search --bdaddr local a2snk
Searching for a2snk on FF:FF:FF:00:00:00 ...
$
Ini menunjukkan bahwa mesin Ubuntu tidak mengiklankan dirinya sebagai wastafel a2dp. Namun, iklan itu sendiri sebagai sumber 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
Ini memungkinkan mesin Ubuntu untuk memasangkan dengan benar dengan headset sebagai sumber audio, tetapi tidak memungkinkan menggunakan mesin Ubuntu sebagai output (sink) untuk audio Bluetooth.
Jika Anda mengedit /etc/bluetooth/audio.conf
, Anda dapat mengaktifkan dukungan wastafel a2dp dengan menambahkan baris ini di bawah [General]
bagian:
Enable=Source
Ini dinamai berlawanan - karena yang kami tambahkan di sini adalah dukungan Bluetooth sink, bukan dukungan sumber - dan bertentangan dengan komentar dalam file ini yang mengklaim semua layanan yang diimplementasikan diaktifkan secara default. :(
Setelah melakukan perubahan ini, Anda harus memulai ulang bluetoothd dengan menjalankan sudo service bluetooth restart
.
Jika sebelumnya Anda telah memasangkan perangkat Android Anda dan komputer Ubuntu ketika mencoba untuk mendapatkan pekerjaan ini, Anda harus menghapus pasangan di kedua sisi dan memasangkannya kembali agar Android mengenali Ubuntu sebagai perangkat audio yang tersedia.
Setelah Anda selesai melakukannya, perangkat Android akan muncul sebagai perangkat input di bawah PulseAudio. Jika PulseAudio tidak mendeteksi sumber audio Bluetooth baru, Anda mungkin perlu menginstal dan memuat modul Bluetooth, dari baris perintah:
sudo apt-get install pulseaudio-module-bluetooth
pactl load-module module-bluetooth-discover
Maka Anda perlu memberi tahu PulseAudio untuk merutekan input audio ini ke output / wastafel Anda (seperti speaker Anda, atau headset Bluetooth) menggunakan koneksi loopback (garis lurus dari sumber ke wastafel).
Versi PulseAudio nanti mungkin memiliki kebijakan-bluetooth-kebijakan yang disertakan dan mungkin sudah mengatur perangkat loopback untuk Anda, tetapi ini tampaknya bukan kasus yang paling umum.
Cara semi-otomatis untuk mengatur koneksi loopback - jika Anda juga menginstal program GUI pavucontrol - adalah dengan hanya memuat modul loopback dan mengkonfigurasinya menggunakan pavucontrol, karena PulseAudio akan mengingat pengaturan. Memuat modul dilakukan dari perintah menggunakan pactl:
pactl load-module module-loopback
Jangan takut jika Anda belum mendengar apa-apa, atau jika Anda mendapatkan efek umpan balik aneh, kami perlu memberi tahu perangkat yang baru dibuat dari mana sumber untuk mendapatkan input dari dan yang tenggelam untuk mengirim output ke pertama.
Buka pavucontrol dan buka tab Konfigurasi. Pastikan perangkat Bluetooth Anda muncul di sini (setelah dipasangkan menggunakan blueman-manager atau alat Bluetooth lain) dan profil diatur ke A2DP. Beralih ke tab Perangkat input dan pastikan perangkat Anda juga muncul di sini dan tidak dibisukan. Sekarang beralihlah ke tab Recording dan buat koneksi loopback yang baru dibuat menggunakan perangkat Anda sebagai sumber dengan kotak pilih di sebelah tombol mute. Beralih ke tab Playback untuk memilih wastafel yang harus digunakan koneksi loopback dengan cara yang sama. Jika perangkat loopback tidak muncul di tab, pastikan semua aliran ditampilkan menggunakan kotak pilih di bagian bawah setiap tab.
Anda sekarang harus mendengar audio dari perangkat Anda, jika diputar, di speaker Anda, atau keluaran apa pun yang Anda pilih. Ketika perangkat Anda terputus, perangkat loopback akan mundur ke sumber dan sumber yang tersedia, yang mungkin tidak diinginkan, jadi pastikan Anda membisukan perangkat loopback sampai Anda membutuhkannya. Sambungan loopback akan mengembalikan sumber / wastafel yang sama pada saat berikutnya perangkat Bluetooth yang sama terhubung berkat modul - * - modul pengembalian.
Jika itu tidak berhasil , atau Anda tidak menginstal pavucontrol, Anda dapat mengatur loopback menggunakan metode berikut:
pactl load-module module-loopback source_dont_move=yes source=$BTSOURCE sink=$SINK
(Ganti $BTSOURCE
dengan nama sumber untuk perangkat Bluetooth Anda seperti yang terlihat oleh PulseAudio, misalnya bluez_source.14_DA_E9_2A_D7_57
; dan ganti $SINK
dengan nama output PulseAudio yang ingin Anda kirimi aliran audio, misalnya:. alsa_output.pci-0000_00_1b.0.analog-stereo
Anda dapat meninggalkan argumen wastafel sepenuhnya dan membiarkannya mundur) ke wastafel aktif, dan mengubahnya nanti melalui pavucontrol.)
- Anda dapat menemukannya
$SINK
dengan pactl list sinks
, itu ditampilkan setelahName:
- Demikian pula Anda dapat melihat
$BTSOURCE
denganpactl list sources
- The
source_dont_move
argumen mencegah koneksi loopback jatuh kembali ke sumber audio lain ketika perangkat Bluetooth terputus. Alih-alih dihapus dan Anda harus mengaturnya lagi lain kali.
Berikut ini contohnya (Ingat untuk mengganti :
dengan _
di alamat 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
Jika memuat modul fallback gagal, coba hapus source_dont_move=yes
argumen, itu tersedia terlebih dahulu di versi 1.0. Namun hati-hati untuk menghapus koneksi loopback ini sebelum Anda menjatuhkan audio ini, atau jika misalnya mikrofon laptop Anda dibunyikan, Anda mungkin mendapatkan umpan balik yang sangat buruk. Untuk menjatuhkan koneksi loopback ini secara manual setelah selesai, jalankan:
pactl unload-module $(pactl list short modules | grep "loopback.*$BTSOURCE" | cut -f1)
Sekali lagi, ganti $BTSOURCE
dengan nama untuk sumber PulseAudio yang merujuk ke perangkat Bluetooth Anda. Anda juga dapat membongkar modul menggunakan id yang dikembalikan oleh perintah modul memuat:
$ 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
Referensi:
- Posting blog menguraikan beberapa detail tentang bagaimana hal ini diperbaiki di Ubuntu.