Duraklatma / oynatmaya devam etme ve sonraki / önceki parça bluetooth komutlarını gönderme


10

Ubuntu bilgisayarımın bluetooth üzerinden müzik akışı sağlayan diğer cihaza bluetooth ses komutları (çal / duraklat, sonraki / önceki şarkı ve yukarı / aşağı) göndermesini istiyorum. Başka bir deyişle, parçaları değiştirebilen, müziği duraklatabilen ve devam ettirebilen bir tür bluetooth kulaklık gibi davranarak Ubuntu bilgisayarımı uygulamak istiyorum.

Aşağıdaki pavucontrol ekran görüntüleri ile aşağıdaki kurulum var ( pt2bluetooth ile bağlı cihazdır): resim açıklamasını buraya girin resim açıklamasını buraya girin

Bu konfigürasyonda akış beklendiği gibi çalışıyor (akan müziği duyabiliyorum pt2), ancak duraklat / devam ettir veya parçayı değiştir gibi herhangi bir sinyal gönderebilmek için herhangi bir yol bulamadım.

Zaten belirli işlevlere izin veren birçok bluetooth protokolü olduğunu öğrendim. Spesifikasyonları doğru anladıysam, ilgilendiğim şey şu anda cihazların bağlanma şekli olan A2DP. Ancak profil açılır menüsünde HSP / HFP kulaklık kafa ünitesi, HSP / HFPheadset ağ geçidi ve kapalı seçenekleri de var.

Python'da bu tür komutların gönderilmesine izin verecek kendi uygulamamı geliştireceğim, bu yüzden bunları Python API veya bash komutları ile göndermekle ilgileniyorum.

Bu soruyu soruyorum çünkü bluetooth cihazlarla nasıl iletişim kurabileceğimle ilgileniyorum.


Test etmek için bir fırsatım yok, ancak burada da bir tartışmada aynı sorunu aldığım için çözümle de ilgileniyorum: ubuntuforums.org/… sadece yüklemek için giriş modülü eklemek gerekiyor gibi görünüyor, ancak bilgi bir değil sonrası çok.
AtomiX84

@ AtomiX84 Tam tersi bir sorunum olduğu izlenimine kapıldım. Bilgisayarımın PC direksiyon müziğime bağlı kulaklıkların değil, kulaklık taklit etmesini istiyorum.
pt12lol


@kenn Oldukça spesifik bir şey görmek istiyorum, cevap ise oldukça genel görünüme bağlanırken. Kullanım durumuma özgü daha ayrıntılı bir örnek verebilir misiniz?
pt12lol

Ben o alanda uzman değilim, github arayabilirsiniz. Ayrıca bu bağlantıya bir göz atın stackoverflow.com/questions/48932249/…
kenn

Yanıtlar:


10

@Kenn'den esinlenerek, daha derine inmeye dbusve d-feetaraçlara karar verdim . Sonunda aşağıdaki komutu kullanarak hedefime ulaştım:

dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0/dev_44_78_3E_85_9D_6F org.bluez.MediaControl1.Play

hangi tabii ki bluetooth üzerinden bilgisayarıma bağlı mobil cihazımda müzik çalmayı tetikledi.

Genel olarak bluetooth cihazları için bu komut şöyle görünecektir:

dbus-send --system --print-reply --dest=org.bluez /org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated> org.bluez.MediaControl1.<command_to_send>

Cihazlarınızın MAC adresini kontrol etmek için çalıştırın bt-devices -l. MAC adresli tüm bilinen (ancak ille de bağlı olmayan, hatta keşfedilmemiş) cihazları parantez içinde listeler.

İzin verilen komutlar listesini bulmak için d-feetile yükleyin sudo apt install d-feet. Çalıştırdıktan sonra, sekme bluezaltındaki sorgu aramasını uygulayın System Busve cihazlarınızın MAC'ıyla girişi bulun:

resim açıklamasını buraya girin

Altında bluetooth kulaklık kullanan şeylere benzer yöntemler vardır org.bluez.MediaControl1. Ancak, bu ağaca göz atarken, A WAY daha fazlasını bulabilirsiniz, bu gerçekten dikkatinize değer.

dbus-sendkullanarak sinyal gönderme komutudur dbus. --systemanahtarı, System Busd-feet'in sekmesinden bir şeyler kullanmak istediğimizi gösterir . Henüz denemedim, ama sanırım --print-replysadece hata ayıklama amaçlı ve zorunlu değil. d-feet başlığında --dest=org.blezanlamına gelir Name. /org/bluez/hci0/dev_<mobile_bluetooth_device_mac_address_with_numbers_underscore_separated>ve org.bluez.MediaControl1.<command>nesne ağacı yollarına bakın.


Bu harika ! Bu dbus-sendkomutları PC'nizin medya düğmeleriyle eşleştirdiniz mi veya nasıl kullanmayı düşünüyorsunuz?
Robert Riedl

1
@Robert Riedl Gamepad düğmelerimi olayları yakalamak ve mobil cihaza gönderilen ve bilgisayarıma müzik akışı yapan belirli komutlarla eşlemek istedim. Bu proje için motivasyon, bir müzik yöneticisi olmayı seven oğlumdu, ancak ekran tarafından çok fazla zaman geçirmesini istemedim. Bu yüzden ona başka tür bir UX sağlamaya karar verdim;)
pt12lol
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.