Apa yang menentukan aplikasi mana yang bertindak terhadap perintah AVRCP bluetooth?


18

Latar belakang: Saya memiliki headset Bluetooth A2DP / AVRCP ( Nokia BH-505 ) yang saya gunakan secara aktif untuk mendengarkan podcast dan musik. Tentu saja, saya mendengarkan ini dengan aplikasi yang berbeda. Headset bluetooth memiliki beberapa tombol "perintah" (AVRCP), yang relevan dengan audio - khusus: "trek berikutnya", "trek sebelumnya" dan "play / pause"

Saat ini setiap kali saya menekan salah satu perintah, salah satu pemutar musik yang saya instal ( Meridian ) selalu mendapat perintah - bahkan ketika itu tidak aktif. Jadi ketika saya mengklik "play / pause" yang bermaksud untuk menghentikan podcast ( DoggCatcher ), sebagai gantinya Meridian diaktifkan dan mulai memutar musik bersama dengan podcast.

Kedua pemain diatur untuk menggunakan headset: DoggCatcher telah mengaktifkan "Bind to headset", dan Meridian telah mengaktifkan "Headset Buttons". Saat ini saya menggunakan stock Android 2.2.1 yang tidak di-root pada GT-S5570 tetapi mungkin rooting dan meningkatkan ke 2.3 CyanogenMod (atau semacamnya), di masa depan.

Mengabaikan hal-hal spesifik, pertanyaan saya tentang ini lebih umum:

  • Bagaimana cara Android menentukan aplikasi mana yang bereaksi terhadap perintah ini? Saya tertarik bahkan dalam jawaban yang sangat techincal.

Di sisi praktis saya tertarik pada:

  • Apakah saya harus mengutak-atik setiap pengaturan aplikasi untuk menentukan aplikasi mana yang mengambil perintah, atau adakah cara umum untuk menentukan ini?
  • Apakah ada cara untuk mengkonfigurasi ini sehingga aplikasi yang benar - benar aktif akan secara otomatis selalu mendapatkan prioritas? (seperti yang ditanyakan sebagian dalam pertanyaan lain )

Bagaimana pertanyaan ini berbeda dari pertanyaan serupa:


1
Saya berhasil menemukan beberapa informasi yang baik yang berhubungan dengan ini dari blog pengembang Android - membahas cara yang tepat bahwa ini harus dilaksanakan oleh aplikasi dalam 2,2: "Membiarkan aplikasi untuk bermain bagus (r) dengan satu sama lain: Penanganan tombol remote control"
Ilari Kajaste

Pada tahun 2016 ini masih menjadi masalah -.- Pindah dari iOS ini mungkin menjadi bagian yang paling menjengkelkan dari Android bagi saya sejauh ini: /
Squazz

Jawaban:


11

media-button-router , yang telah disebutkan dalam salah satu pertanyaan Anda yang ditautkan, mencoba mencari tahu aplikasi apa yang sedang diputar musik dan untuk mengirim acara AVRCP ke sana. Selain itu, ia mencantumkan semua aplikasi yang diinstal, yang menyatakan untuk mendengarkan acara AVRCP.

Apa yang membuat AVRCP rumit: Beberapa aplikasi, seperti Sony Music Unlimited , tampaknya tidak menyatakan android.intent.action.MEDIA_BUTTONdalam manifesnya. Untuk alasan ini (atau mungkin alasan lain) mereka tidak dapat dikontrol melalui media-button-router. Saya tahu bahwa mis. Musik Tidak Terbatas dapat dikontrol melalui AVRCP karena saya membacanya di komentar pengguna dan juga saya bisa menjalankannya sekali tetapi sayangnya itu tidak dapat direproduksi. Jadi dalam kasus-kasus tersebut, sepertinya kita harus menunggu pembaruan aplikasi dengan implementasi penanganan acara AVRCP yang bersih.

Menurut wiki media-tombol-router "Penanganan Tombol Media dilakukan melalui siaran yang dipesan, dan setiap aplikasi menetapkan prioritasnya sendiri untuk menerima." Jadi mungkin bisa menulis aplikasi yang menampilkan prioritas ini dan, pada dasarnya, akan memungkinkan Anda untuk menentukan aplikasi apa yang akan dimulai. Namun, saya tidak tahu tentang aplikasi semacam itu.



0

Mungkin ini akan sedikit membantu:

Samsung S5 -> penerima Bluetooth + colokan telepon In Ear

Saya menggunakan Samsung S5, pertama dengan aplikasi digital untuk mengunduh dan memutar musik. Lalu saya berubah dan menggunakan Cloudplayer. Tetapi setiap kali Clouplayer diputar dan saya menekan tombol pause / play pada receiver Bluetooth saya, aplikasi digital saya akan mulai memutar musik. Saya tidak bisa mengubah pengaturan apa pun untuk mengubah play / pause bluetooth ke arah Cloudplayer. Saya kemudian menghapus semua musik 7digital saya yang diunduh dan mencoba lagi. Masalah terpecahkan! Mainkan / jeda entah bagaimana terhubung ke Cloudplayer sekarang.


0

Ini bukan masalah dengan perangkat BT Anda. Ketika dipasangkan dengan telepon Anda, Bluetooth Headset memainkan aliran A2DP aktif yang dimulai dari Ponsel. Jika itu adalah beberapa media player standar pada ponsel Anda, ia dapat bereaksi terhadap semua perintah kontrol AVRCP seperti play jeda lewati, fw dll. Sekarang ketika Anda memainkan sesuatu di web atau pemain lain yang tidak menerapkan semua kontrol seperti itu pada AVRCP, untuk BT Headset itu masih aliran A2DP aktif yang datang. Ini akan mengirimkan pesan Kontrol AVRCP ke ponsel Anda. Sekarang telepon Anda yang seharusnya merutekan perintah-perintah ini ke aplikasi terkait dalam kebanyakan kasus ke sumber streaming A2DP aktif atau dalam kasus Anda telepon Anda masih meneruskan perintah AVRCP ke pemutar musik default.

Taruhan terbaik Anda adalah mencoba mengonfigurasikan ponsel Anda asalkan sumber yang Anda mainkan mendukung kontrol AVRCP. Jika tidak maka Anda tidak dapat melakukan apa pun. Jika ya, berarti Mobile seharusnya mengizinkan perintah AVRCP ini ditangani oleh sumber streaming A2DP aktif Anda.


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.