Bilgisayarımı A2DP alıcısı / bluetooth hoparlörü olarak kullanabilir miyim?


40

İlk olarak, sorun: Temel kulaklıkları olan ana müzik çalarım olarak bir Cowon MP3 çalar kullanıyorum.

A2DP sunuyor ve netbook'umun (UNE 10.04 çalıştıran) alıcısı olarak hareket etmesini istiyorum.

A2dp ile ilgili web'deki bazı kaynaklar, ancak çoğu güncel değil:

Yanıtlar:


47

Ubuntu makinenizi a2dp Bluetooth cihazı olarak kullanmak için önce onu "a2dp sink" bitiş noktası olarak kaydedecek şekilde yapılandırmanız gerekir.

Bluez Ubuntu'daki paket (10,04 ve üzeri) bir yardımcı olarak adlandırılan içeren sdptool Bluetooth cihaz A2DP dağıtma tertibatı olarak yapılandırılmış olup olmadığını kontrol etmek için kullanılabilir. İşte sdptool'un Bluetooth kulaklığımla çalıştığı çıktı (adres gnome-kontrol merkezindeki "Bluetooth ayarları" iletişim kutusundan geliyor):

$ 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

$

yerel Ubuntu makineme karşı çalıştırdığımda çıktı şöyle:

$ sdptool search --bdaddr local a2snk
Searching for a2snk on FF:FF:FF:00:00:00 ...
$

Bu, Ubuntu makinesinin kendini a2dp havuzu olarak tanıtmadığını gösterir. Ancak, kendisini bir a2dp kaynağı olarak tanıtıyor:

$ 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

Bu, Ubuntu makinesinin kulaklıklı mikrofon setini bir ses kaynağı olarak doğru şekilde eşleştirmesini sağlar, ancak Ubuntu makinesinin Bluetooth sesi için çıkış (lavabo) olarak kullanılmasını mümkün kılmaz.

Düzenlemek size olursa /etc/bluetooth/audio.conf, altında bu satırı ekleyerek A2DP lavabo desteğini etkinleştirebilirsiniz [General]bölümünde:

  Enable=Source

Bu, her ikisi de tersine bir şekilde adlandırılmıştır - buraya eklediğimiz şey, kaynak desteği değil Bluetooth havuzu desteğidir - ve bu dosyadaki, tüm uygulanan hizmetlerin varsayılan olarak etkin olduğunu iddia ettiği yorumuyla çelişkilidir. :(

Bu değişikliği yaptıktan sonra, bluetoothd'u çalıştırarak yeniden başlatmanız gerekir sudo service bluetooth restart.

Bu işi almaya çalışırken Android cihazınızı ve Ubuntu bilgisayarınızı daha önce eşleştirdiyseniz, Android'in Ubuntu'yu kullanılabilir bir ses cihazı olarak tanımasını sağlamak için eşleştirmeyi silmeniz ve yeniden eşleştirmeniz gerekir.

Bunu yaptıktan sonra, Android cihaz PulseAudio altında bir giriş cihazı olarak görünmelidir. PulseAudio yeni Bluetooth ses kaynağını algılamazsa, Bluetooth modülünü komut satırından takmanız ve yüklemeniz gerekebilir:

 sudo apt-get install pulseaudio-module-bluetooth
 pactl load-module module-bluetooth-discover

Ardından, PulseAudio'ya bu ses girişini bir geridöngü bağlantı (bir kaynaktan bir lavaboya düz bir hat) kullanarak çıkış / lavaboya (hoparlörleriniz veya Bluetooth kulaklık gibi) yönlendirmesini söylemeniz gerekir.

PulseAudio'nun daha sonraki sürümlerinde modül-bluetooth politikası bulunabilir ve zaten sizin için bir geridöngü aygıtı kurmuş olabilir, ancak bu en yaygın durum olarak görünmüyor.

Geridöngü bağlantısını kurmanın yarı otomatik bir yolu - ayrıca Pavucontrol GUI programınız yüklüyse - basitçe geri döngü modülünü yüklemek ve onu PulseAudio ayarları hatırlayacağından pavucontrol kullanarak yapılandırmaktır. Modülün yüklenmesi pactl komutunu kullanarak komuttan yapılır:

 pactl load-module module-loopback

Henüz bir şey duymuyorsanız ya da garip geribildirim efektleri alırsanız korkmayın, yeni oluşturulan cihaza hangi girişi kaynak alacağını ve çıkışı ilk önce hangi lavaboya göndereceğini söylememiz gerekir.

Pavucontrol'ü açın ve Yapılandırma sekmesini açın. Bluetooth cihazınızın burada göründüğünden emin olun (blueman yöneticisi veya başka bir Bluetooth aracı kullanarak eşleştirdikten sonra) ve profilin A2DP olarak ayarlandığından emin olun. Giriş cihazları sekmesine geçin ve cihazınızın burada da göründüğünden ve sessiz olmadığından emin olun. Şimdi Kayıt sekmesine geçin ve yeni oluşturulan geridöngü bağlantısının, sessiz düğmesinin yanındaki seçme kutusuyla cihazınızı kaynak olarak kullanmasını sağlayın. Geri döngü bağlantısının aynı şekilde kullanması gereken lavaboyu seçmek için Oynatma sekmesine geçin. Geridöngü aygıtı sekmelerde görünmüyorsa, tüm akışların her sekmenin altındaki seçim kutusunu kullanarak görüntülendiğinden emin olun.

Şimdi, eğer çalıyorsa, hoparlörlerinizde veya seçtiğiniz çıkış lavabosunda sesi cihazınızdan duymalısınız. Cihazınızın bağlantısı kesildiğinde, geridöngü cihazı, istenmeyebilecek olan mevcut bir lavaboya ve kaynağa geri döner, bu nedenle geridöngü aygıtını, ihtiyacınız olana kadar susturduğunuzdan emin olun. Geri döngü bağlantısı - * - restore modülleri sayesinde aynı Bluetooth cihazının bir sonraki bağlanışında aynı havuz / kaynağı geri yükleyecektir.

Bu işe yaramazsa veya kurulu kontrol paneliniz yoksa, aşağıdaki yöntemi kullanarak geri döngü ayarını yapabilirsiniz:

 pactl load-module module-loopback source_dont_move=yes source=$BTSOURCE sink=$SINK

( $BTSOURCEÖrneğin, Bluetooth cihazınızın kaynak adıyla PulseAudio tarafından görüldüğü gibi bluez_source.14_DA_E9_2A_D7_57değiştirin ve örneğin $SINKses akışını göndermek istediğiniz PulseAudio çıkışının adıyla değiştirin , örneğin :.) alsa_output.pci-0000_00_1b.0.analog-stereoLavabo argümanını tamamen bırakabilir ve geri dönmesini sağlayabilirsiniz. aktif bir lavaboya yönlendirin ve daha sonra pavucontrol ile değiştirin.)

  • Sen bulabilirsiniz $SINKile pactl list sinkso sonra gösterilen,Name:
  • Benzer şekilde $BTSOURCEile görebilirsinizpactl list sources
  • Bağımsız source_dont_movedeğişken, Bluetooth cihazı bağlantısı kesildiğinde loopback bağlantısının başka bir ses kaynağına düşmesini önler. Bunun yerine kaldırıldı ve bir dahaki sefere tekrar ayarlamak zorunda kalacaksınız.

İşte bir örnek nasıl görüneceğini şöyle: ( Bluetooth adresindeki :ile değiştirmeyi unutmayın _!):

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

Geri dönüş modülünün yüklenmesi başarısız olursa, source_dont_move=yesargümanı kaldırmayı deneyin , ilk sürüm 1.0'da kullanıma sunuldu. Daha sonra, bu sesi kesmeden önce bu geridöngü bağlantısını keserken dikkatli olun veya örneğin dizüstü bilgisayar mikrofonunuz açılmamışsa, bazı çok kötü geri bildirim alabilirsiniz. İşiniz bittiğinde bu geridöngü bağlantısını manuel olarak bırakmak için:

pactl unload-module $(pactl list short modules | grep "loopback.*$BTSOURCE" | cut -f1)

Yine, $BTSOURCEBluetooth aygıtınıza başvuran PulseAudio kaynağının adıyla değiştirin . Ayrıca, load-module komutu tarafından döndürülen kimliği kullanarak modülü de kaldırabilirsiniz:

$ 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

Referanslar:

  • Blog postası , Ubuntu’da nasıl düzeltildiğiyle ilgili bazı detayları açıklıyor.

belirli cihaz havuzu için kanal haritasını değiştirebilir miyiz
Prakash V Holkar

Merhaba theree ve detaylı rehber için teşekkür ederim. Komut pactl load-module module-bluethooth-discoverubuntu stüdyo 14.04'te başarısız oldu. Bu nedenle , telefonum PC’yi bir ses havuzu olarak doğru görse de, blueziçinde hiçbir kaynak göremiyorum pulseaudio. Herhangi bir fikir?
Nass

eğer pactl list sources shortsizin için bluez kaynağını göstermiyor, iki olası çözümler bulduk: çağrı gdbus call --system --dest org.bluez --object-path /org/bluez/XXX/hci0/dev_XX_XX_XX_XX_XX_XX --method org.bluez.AudioSource.Connect(yol cihaz BD adresini ve birlikte alabilirsiniz wich adaptör yolu içermekte gdbus call --system --dest org.bluez --object-path / --method org.bluez.Manager.DefaultAdapter). Veya burada açıklandığı gibi d-feet kullanın . Aksi takdirde telefon tarafına bağlanın ve bir şeyler çalmaya başlayın.
Treviño

Bluez'in ortaya çıkmasından kaynak göremiyorum. Linux Nane 17.3 "Rosa" burada.
donquixote

1
Vaov! en az değişiklikle (audio.conf yerine /etc/bluetooth/main.conf) Rasbian'da çalışır. Teşekkürler! (Bu işletim sisteminde geridöngü yapılandırmasına gerek yoktur)
jamie

13

Ubuntu yazılım merkezinden kurulan blueman kullanıyorum. Blueman simgesine sağ tıklayın * -> "yerel servisler" -> ses-> "Gelişmiş ses alımını" kontrol edin. BTW benim Ubuntu 11.10 laptop benim android telefon oynamak ne dinlemek için kullanın.

* Blueman simgesi sağ alt köşede gnome shell + ubuntu 11.10 ile gösterilir, bu benim durumum. Umarım bu sizin için bir şekilde yararlıdır.


Ses için blueman konfigürasyon arabirimi sadece /etc/bluetooth/audio.conf içindeki Enable = Source değerini ayarlar, bu yüzden androidin bir bilgisayarı ses çıkışı olarak kullanmasını nasıl sağlayacağını göremiyorum.
slangasek

tamam, o zaman eğer audio.conf 'a ayarladıysam ve sonra bağlantının her iki tarafından eşitsizse , Android'in bilgisayarı
nihayetinde

Bunu denedim ve bunu ses alıcısı olarak tanıyamadım. : - /
Jorge Castro

blueman 12.04'te benim gösterge uygulamamda iki bluetooth ikonu ile bittiğim dışında sıfır mesele ile çalıştı.
HDave

7

Ubuntu 12.04'te şimdi gerçekten çok basit

Bluetooth cihazınızı bağlayın

Bluetooth cihazınızı arayın ve kaynak numarasını not edin:

pactl list sources 

Bluetooth cihazı için geri döngü yapın:

pactl load-module module-loopback source=$SOURCE_NUMBER  

$ SOURCE_NUMBER, daha önce not aldığınız sayıdır.

Örneğin, ses çalma işleminin çalışması için aşağıya girdim:

$ pactl load-module module-loopback source=3  

Bu kadar! Çözümü üst cevapta biraz karmaşık buldum, bu yüzden bu şekilde basitleştirdim (daha az yazarak ve kopyala / yapıştır). Her ne kadar benim çözümüm Bluetooth cihazı tarafından listelenen herhangi bir ses cihazını kaldırırsanız muhtemelen kırılır pactl list sources.

Ayrıca, bluetooth cihazının bağlantısını kesmeden önce geri döngü modülünü çıkarmayı unutmayın:

Oluşturduğunuz geridöngü aygıtının modül numarasını not alın:

pactl list short modules

Geri döngü cihazını çıkarın:

pactl unload-module $MODULE_NUMBER

Önceki cevaplar 12.04'ün yayınlanmasından önce yazılmış, bu yüzden bazı değişiklikler olduğuna eminim. Örneğin, bluetooth cihazlarını ses kaynağı olarak kullanmayı manuel olarak etkinleştirmek zorunda değildim (varsayılan olarak etkindi). Bununla birlikte, bazen telefonumdaki bluetooth ayarlarımdaki "Medya Sesi" profilini de değiştirmek zorunda kalıyorum (Samsung Captivate CyanogenMod 9.1.0 programını çalıştırıyor).

Bluetooth A2DP aygıt bağlantılarını izlemek için otomatik olarak bir kabuk betiği kullanarak dbus-monitor'dan yararlanmanın ve otomatik olarak bunun için bir geridöngü modülünü yüklemenin muhtemelen bir yolu var, ama bu biraz kafamın üstünde.

Umarım bunu daha sonra manuel olarak Ubuntu 12.10'da yapmamız gerekmez.


Belirli evyeler için modül geri besleme yüklendikten sonra, Particular cihazın modül geri dönüşünün kanal haritasını sola veya sağa değiştirebilir miyiz
Prakash V Holkar

3

13.04 için, kaynak cihazınızı ubuntu dizüstü bilgisayar ile eşleştirin, sadece çalışır! Şimdi bu kadar kolay olduğunu bulmak çok güzel.



0

Cevaptan daha kolay bir çözüm.

Basitçe gidebilirsin

sudo apt-get install pulseaudio*

Ardından yeniden başlatın. Yeniden başlattıktan sonra, Bluetooth'unuza bağlanın ve müziği telefonunuzda çalın. Her şey bilgisayarınıza iletilecek ve bilgisayarın hoparlörlerinde çalacaktır.

Ve evet! rica ederim.


apt-getjoker karakterleri değil normal ifadeleri kullanır. Yani neyin kullanılacağına pulseaudio*dair hiçbir fikriniz yok (ipucu: sadece başlayan paketler değil pulseaudi). Ve PulseAudio zaten varsayılan Ubuntu kurulumunun bir parçası.
08'de

Evet! Fakat bu, işleri anında yapmak isteyen tüm tembel insanlar için işe yarayacak.
Adel Abula - MageBinary
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.