Dapatkah saya menggunakan komputer saya sebagai penerima / speaker Bluetooth A2DP?


40

Pertama, masalahnya: Saya menggunakan Cowon MP3 player sebagai pemutar musik utama dengan penyumbat telinga dasar.

Ia menawarkan A2DP & Saya ingin netbook saya (menjalankan UNE 10,04) bertindak sebagai penerima.

Beberapa sumber daya di web tentang a2dp, tetapi sebagian besar sudah kedaluwarsa:

Jawaban:


47

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 $BTSOURCEdengan nama sumber untuk perangkat Bluetooth Anda seperti yang terlihat oleh PulseAudio, misalnya bluez_source.14_DA_E9_2A_D7_57; dan ganti $SINKdengan nama output PulseAudio yang ingin Anda kirimi aliran audio, misalnya:. alsa_output.pci-0000_00_1b.0.analog-stereoAnda dapat meninggalkan argumen wastafel sepenuhnya dan membiarkannya mundur) ke wastafel aktif, dan mengubahnya nanti melalui pavucontrol.)

  • Anda dapat menemukannya $SINKdengan pactl list sinks, itu ditampilkan setelahName:
  • Demikian pula Anda dapat melihat $BTSOURCEdenganpactl list sources
  • The source_dont_moveargumen 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=yesargumen, 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 $BTSOURCEdengan 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.

dapatkah kita mengubah peta saluran untuk perangkat tertentu
Prakash V Holkar

hai itu dan terima kasih untuk panduannya. Perintah pactl load-module module-bluethooth-discovergagal di ubuntu studio 14.04. Jadi saya tidak melihat bluezsumber apa pun pulseaudio, meskipun ponsel saya dengan benar melihat pc sebagai wastafel audio. Ada ide?
nass

jika pactl list sources shorttidak menunjukkan sumber bluez untuk Anda, saya telah menemukan dua solusi yang memungkinkan: panggil ke gdbus call --system --dest org.bluez --object-path /org/bluez/XXX/hci0/dev_XX_XX_XX_XX_XX_XX --method org.bluez.AudioSource.Connectmana (path menyertakan alamat BD perangkat dan jalur adaptor yang dapat Anda peroleh gdbus call --system --dest org.bluez --object-path / --method org.bluez.Manager.DefaultAdapter). Atau gunakan d-kaki seperti yang dijelaskan di sini . Kalau tidak, hubungkan di sisi telepon, dan mulai mainkan sesuatu.
Treviño

Saya masih tidak melihat sumber dari Bluez muncul. Linux Mint 17.3 "Rosa" di sini.
donquixote

1
Wow! dengan sedikit perubahan (/etc/bluetooth/main.conf alih-alih audio.conf) ini berfungsi pada Rasbian. Terima kasih! (Tidak ada konfigurasi loopback diperlukan dalam OS itu)
jamie

13

Saya menggunakan blueman, diinstal dari pusat perangkat lunak Ubuntu. Mengklik kanan pada ikon blueman * -> "layanan lokal" -> audio-> Periksa "penerimaan audio lanjutan" berujung. Tapi saya menggunakannya untuk mendengarkan di laptop Ubuntu 11.10 saya apa yang saya mainkan di ponsel android saya.

* Ikon blueman ditampilkan di sudut kanan bawah di gnome shell + ubuntu 11.10, itu adalah kasus saya. Saya harap ini bermanfaat bagi Anda.


Antarmuka konfigurasi blueman untuk audio hanya mengatur Enable = Nilai sumber di /etc/bluetooth/audio.conf, jadi saya tidak melihat bagaimana ini akan memungkinkan android menggunakan komputer sebagai output audio.
slangasek

ok, jadi jika saya atur itu di audio.conf dan kemudian putuskan hubungan dari kedua sisi koneksi, yang tampaknya cukup untuk membiarkan Android melihat komputer sebagai wastafel audio ...
slangasek

Saya mencobanya dan tidak bisa mengenalinya sebagai wastafel audio. : - /
Jorge Castro

blueman bekerja untuk saya di 12,04 dengan nol masalah selain fakta saya berakhir dengan dua ikon bluetooth di applet indikator saya.
HDave

7

Ini sangat sederhana sekarang di Ubuntu 12.04

Hubungkan perangkat bluetooth Anda

Cari perangkat bluetooth Anda dan catat nomor sumbernya:

pactl list sources 

Buat pengulangan untuk perangkat bluetooth:

pactl load-module module-loopback source=$SOURCE_NUMBER  

Di mana $ SOURCE_NUMBER adalah nomor yang sebelumnya Anda catat.

Misalnya, saya memasukkan yang berikut ini agar pemutaran audio berfungsi:

$ pactl load-module module-loopback source=3  

Itu dia! Saya menemukan solusi di jawaban atas agak rumit, jadi saya menyederhanakannya dengan cara ini (apalagi mengetik dan menyalin / menempel). Meskipun solusi saya mungkin akan rusak jika Anda menghapus perangkat audio yang terdaftar sebelum perangkat bluetooth pactl list sources.

Juga, jangan lupa untuk menghapus modul loopback sebelum melepaskan perangkat bluetooth:

Perhatikan nomor modul perangkat loopback yang Anda buat:

pactl list short modules

Hapus perangkat loopback:

pactl unload-module $MODULE_NUMBER

Jawaban sebelumnya ditulis sebelum rilis 12,04, jadi saya yakin ada beberapa perubahan. Misalnya, saya tidak perlu mengaktifkan secara manual menggunakan perangkat bluetooth sebagai sumber audio (diaktifkan secara default). Namun, kadang-kadang saya harus mengaktifkan profil "Media Audio" di pengaturan bluetooth saya di ponsel saya (Samsung Captivate menjalankan CyanogenMod 9.1.0).

Mungkin ada cara untuk memanfaatkan monitor-dbus dengan menggunakan skrip shell untuk menonton koneksi perangkat A2DP bluetooth dan secara otomatis memuat modul loopback untuk itu, tapi itu sedikit di atas kepala saya.

Semoga kita tidak perlu melakukan ini secara manual lagi di Ubuntu 12.10.


Setelah memuat modul-loopback untuk sink tertentu, dapatkah kita mengubah peta saluran modul-loopback perangkat tertentu ke kiri atau kanan
Prakash V Holkar

3

Untuk 13,04, pasangkan perangkat sumber Anda dengan laptop ubuntu dan hanya berfungsi! Sangat keren untuk menemukan bahwa itu mudah sekarang.



0

Solusi yang bahkan lebih mudah daripada jawabannya.

Anda cukup pergi

sudo apt-get install pulseaudio*

Kemudian reboot. Setelah reboot, sambungkan ke Bluetooth Anda dan cukup putar musik di ponsel Anda. Semuanya akan dikirimkan ke komputer Anda dan dimainkan di speaker komputer.

Dan ya! sama-sama.


apt-getmenggunakan ekspresi reguler, bukan wildcard. Jadi Anda tidak tahu apa yang akan diinstal menggunakan pulseaudio*(petunjuk: itu bukan hanya paket yang dimulai dengan pulseaudi). Dan PulseAudio sudah menjadi bagian dari instalasi default Ubuntu.
muru

Iya nih! Tapi ini akan bekerja untuk semua orang malas yang ingin semuanya berjalan dengan cepat.
Adel Abula - MageBinary
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.