it-swarm-tr.com

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

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

A2DP sunuyor ve netbook'umun (UNE 10.04 çalışıyor) alıcı olarak davranmasını istiyorum.

Web üzerindeki a2dp ile ilgili bazı kaynaklar, ancak çoğu güncel değil:

41

Ubuntu makinenizi a2dp Bluetooth cihazı olarak kullanmak için, önce onu "a2dp lavabo" uç noktası olarak kaydedilecek şekilde yapılandırmanız gerekir.

Ubuntu'daki (10.04 ve üstü) bluez paketi, bir Bluetooth cihazının a2dp lavabo olarak yapılandırılıp yapılandırılmadığını kontrol etmek için kullanılabilen sdptool adlı bir yardımcı program içerir. İşte sdptool'un Bluetooth kulaklığımla çalıştırdığı çıktı (adres, gnome-control-center'daki "Bluetooth ayarları" iletişim kutusundan alıyor):

$ 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

$

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

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

Bu, Ubuntu makinesinin bir a2dp lavabo olarak reklam yapmadığını gösteriyor. Ancak a2dp kaynağı olarak reklam veriyor:

$ 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ıkla bir ses kaynağı olarak doğru bir şekilde eşleşmesini sağlar, ancak Ubuntu makinesinin Bluetooth sesi için çıkış (lavabo) olarak kullanılmasını sağlamaz.

/etc/bluetooth/audio.conf düzenlerseniz, bu satırı [General] bölümünün altına ekleyerek a2dp havuz desteğini etkinleştirebilirsiniz:

  Enable=Source

Bu hem sezgisel olarak adlandırılır - çünkü buraya eklediğimiz şey kaynak desteği değil Bluetooth lavabo desteği - ve bu dosyadaki tüm uygulanan hizmetlerin varsayılan olarak etkin olduğunu iddia eden yorumla çelişiyor. :(

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

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

Bunu yaptıktan sonra, Android cihazı PulseAudio altında bir giriş cihazı olarak görünmelidir. PulseAudio yeni Bluetooth ses kaynağını algılamazsa, komut satırından Bluetooth modülünü kurmanı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, geri döngü bağlantısı (bir kaynaktan bir lavaboya düz bir çizgi) kullanarak çıkışınıza/lavabonuza (hoparlörleriniz veya Bluetooth kulaklık gibi) yönlendirmesini söylemeniz gerekir.

PulseAudio'nun sonraki sürümlerinde modül-bluetooth politikası dahil edilmiş olabilir ve sizin için bir geri döngü aygıtı kurmuş olabilir, ancak bu en yaygın durum gibi görünmemektedir.

Geridöngü bağlantısını kurmanın yarı otomatik bir yolu - ayrıca pavucontrol GUI programı yüklüyse - geridönüş modülünü yüklemek ve yapılandırmaktır pavucontrol kullanarak PulseAudio ayarları hatırlayacaktır. Modülün yüklenmesi pactl kullanılarak komuttan yapılır:

 pactl load-module module-loopback

Henüz bir şey duymuyorsanız veya garip geri bildirim efektleri alırsanız korkmayın, yeni oluşturulan cihaza hangi kaynağın girdi alınacağını ve hangi çıkışın önce çıkışa gönderileceğini söylemeliyiz.

Pavucontrol'ü açın ve Yapılandırma sekmesini açın. Bluetooth cihazınızın burada göründüğünden (blueman-manager veya başka bir Bluetooth aracı kullanarak eşleştirdikten sonra) ve profilin A2DP olarak ayarlandığından emin olun. Giriş aygıtları sekmesine geçin ve cihazınızın burada da göründüğünden ve sesinin kapalı olmadığından emin olun. Şimdi Kayıt sekmesine geçin ve yeni oluşturulan geri döngü bağlantısının, sessiz düğmesinin yanındaki seçim 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. Geri döngü aygıtı sekmelerde gösterilmezse, her sekmenin altındaki seçim kutusunu kullanarak tüm akışların görüntülendiğinden emin olun.

Şimdi, çalıyorsa, hoparlörlerinizden veya seçtiğiniz çıkış bataryasından sesi cihazınızdan duymalısınız. Cihazınızın bağlantısı kesildiğinde, geri döngü cihazı, istenmeyebilecek kullanılabilir bir lavaboya ve kaynağa geri döner, bu yüzden geri döngü cihazını ihtiyacınız olana kadar susturduğunuzdan emin olun. Geridöngü bağlantısı, aynı Bluetooth cihazı bir dahaki sefere bağlandığında aynı lavabo/kaynağı geri yükleyecek - * - geri yükleme modülleri sayesinde.

Bu işe yaramazsa veya pavucontrol yüklü değilse, bunun yerine aşağıdaki yöntemi kullanarak geri döngü kurabilirsiniz:

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

($BTSOURCE 'i PulseAudio tarafından görüldüğü gibi Bluetooth cihazınızın kaynak adıyla değiştirin, örneğin bluez_source.14_DA_E9_2A_D7_57; ve $SINK yerine istediğiniz PulseAudio çıkışının adını yazın ses akışını gönderin, örneğin: alsa_output.pci-0000_00_1b.0.analog-stereo. Lavabo argümanını tamamen bırakabilir ve etkin bir lavaboya geri dönebilir ve daha sonra pavucontrol ile değiştirebilirsiniz.)

  • $SINK ile pactl list sinks bulabilirsiniz, Name: öğesinden sonra gösterilir
  • Benzer şekilde $BTSOURCE ile pactl list sources
  • source_dont_move bağımsız değişkeni, Bluetooth aygıtının bağlantısı kesildiğinde geri döngü bağlantısının başka bir ses kaynağına düşmesini önler. Bunun yerine kaldırılır ve bir dahaki sefere yeniden ayarlamanız gerekir.

Bir örnek şöyle görünecektir (Bluetooth adresinde : 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

Yedek modülün yüklenmesi başarısız olursa, source_dont_move=yes bağımsız değişkenini kaldırmayı deneyin, önce 1.0 sürümünde kullanılabilir hale getirildi. Ancak, bu sesi bırakmadan önce bu geri döngü bağlantısını kaldırmaya dikkat edin veya örneğin dizüstü bilgisayar mikrofonunuzun sesi kapatılırsa, çok kötü bir geri bildirim alabilirsiniz. İşiniz bittiğinde bu geri döngü bağlantısını manuel olarak bırakmak için şunu çalıştırın:

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

Yine, $BTSOURCE ile Bluetooth cihazınızı ifade eden PulseAudio kaynağının adını değiştirin. Load-module komutunun döndürdüğü 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 yazısı Ubuntu'da bunun nasıl düzeltildiğiyle ilgili bazı ayrıntıları özetliyor.
49
slangasek

Ubuntu yazılım merkezinden kurulu blueman kullanıyorum. Blueman simgesine sağ tıklamak * -> "yerel hizmetler" -> ses-> "gelişmiş ses alımını" kontrol edin. Btw Ubuntu 11.10 dizüstü bilgisayarımda Android telefonumda oynadıklarımı) dinlemek için kullanıyorum.

* Blueman simgesi gnome Shell + ubuntu 11.10'da sağ alt köşede gösteriliyor, bu benim durumum. Umarım bu sizin için bir şekilde faydalıdır.

13
user47059

Ubuntu 12.04'te 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 bir geri döngü yapın:

pactl load-module module-loopback source=$SOURCE_NUMBER  

$ SOURCE_NUMBER, daha önce not ettiğiniz sayıdır.

Örneğin, ses oynatmanın çalışması için aşağıdakileri girdim:

$ pactl load-module module-loopback source=3  

Bu kadar! En iyi yanıtta çözümü biraz karmaşık buldum, bu yüzden bu şekilde basitleştirdim (çok daha az yazma ve kopyalama/yapıştırma). Bluetooth cihazından önce listelenen ses cihazlarını pactl list sources.

Ayrıca, bluetooth cihazını çıkarmadan önce geri döngü modülünü çıkarmayı unutmayın:

Oluşturduğunuz geri döngü aygıtının modül numarasını not edin:

pactl list short modules

Geridöngü aygıtını kaldırın:

pactl unload-module $MODULE_NUMBER

Önceki cevaplar 12.04'ün yayınlanmasından önce yazılmıştı, bu yüzden bazı değişiklikler olduğundan eminim. Örneğin, bluetooth cihazlarını ses kaynağı olarak manuel olarak etkinleştirmek zorunda kalmadım (varsayılan olarak etkindir). Ancak, bazen telefonumdaki bluetooth ayarlarımdaki "Media Audio" profilini açmam gerekiyor (Samsung Captivate, CyanogenMod 9.1.0'ı çalıştırıyor).

Bluetooth A2DP cihaz bağlantılarını izlemek ve bunun için otomatik olarak bir geri döngü modülü yüklemek için bir Shell betiği kullanarak muhtemelen dbus-monitörden yararlanmanın bir yolu var, ancak bu biraz kafamın üzerinde.

Umarım bunu artık Ubuntu 12.10'da manuel olarak yapmamız gerekmeyecek.

7
Toasty

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

3
user184485

Ubuntu 16.04'te bu kutudan çıkar çıkmaz çalışır.

2
mniess

Cevaptan daha kolay bir çözüm.

Sadece gidebilirsin

Sudo apt-get install pulseaudio*

Sonra 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 aktarılacak ve bilgisayarın hoparlörlerinde çalınacaktır.

Ve evet! rica ederim.