Contexte: J'ai un casque Bluetooth A2DP / AVRCP ( Nokia BH-505 ) que j'utilise activement pour écouter des podcasts et de la musique. Bien sûr, je les écoute avec différentes applications. Le casque bluetooth possède des boutons de "commande" (AVRCP), pertinents pour l'audio - en particulier: "piste suivante", "piste précédente" et "lecture / pause"
Actuellement, chaque fois que j'appuie sur l'une des commandes, l'un des lecteurs de musique que j'ai installés ( Meridian ) reçoit toujours la commande - même lorsqu'il n'est pas actif. Ainsi, lorsque je clique sur "lecture / pause" dans l'intention de suspendre un podcast ( DoggCatcher ), Meridian est activé à la place et commence à jouer de la musique avec le podcast.
Les deux joueurs devraient utiliser le casque: DoggCatcher a activé la fonction "Lier au casque" et Meridian les boutons "Casque" sont activés. J'utilise actuellement Android 2.2.1 stock non rooté sur GT-S5570 mais je peux être en train de rooter et de mettre à niveau vers 2.3 CyanogenMod (ou similaire), à l'avenir.
Ignorant les détails, ma question à ce sujet est plus générale:
- Comment Android détermine-t-il quelle application réagit à ces commandes? Je suis intéressé même par une réponse très technique.
Sur le plan pratique, je suis intéressé par:
- Dois-je jouer avec les paramètres de chaque application pour déterminer quelle application prend les commandes, ou existe-t-il un moyen général de le déterminer?
- Existe-t-il un moyen de configurer cela pour que l'application qui est réellement active obtienne automatiquement toujours la priorité? (comme cela a été demandé en partie dans une autre question )
En quoi cette question diffère des questions similaires:
"Comment définir le comportement du bouton" Lecture "sur la télécommande Bluetooth" - uniquement une approche pratique et différente, jusqu'à présent, n'a pas de réponses, et je suis également intéressé par les réponses qui nécessiteraient un enracinement ou un firmware personnalisé (en particulier CyanogenMod).
Modifier l'application par défaut pour la gestion des commandes du casque - un problème exact qui a été résolu, mais pas d'une manière qui répondrait à mes questions, bien qu'il donne quelques indications sur la façon dont les choses fonctionnent.
Comment puis-je faire en sorte que le bouton de mon casque contrôle autre chose que le lecteur de musique standard? - question en partie similaire sur le plan pratique, mais aucun accent sur l'explication du fonctionnement, et la seule réponse se concentre sur la partie que je ne demande pas (faire en sorte qu'une seule application reçoive les commandes).
pourquoi toutes les applications sonores obtiennent-elles des événements de bouton Bluetooth, tout à la fois - très similaires, mais posent des questions sur un problème spécifique (tous les lecteurs multimédias reçoivent la commande AVRCP)
la source
Réponses:
media-button-router , déjà mentionné dans l'une de vos questions liées, essaie de comprendre quelle application joue actuellement de la musique et de lui envoyer les événements AVRCP. En outre, il répertorie toutes les applications installées, qui déclarent écouter les événements AVRCP.
Ce qui rend AVRCP compliqué: Certaines applications, comme Sony Unlimited Music , semblent ne pas déclarer
android.intent.action.MEDIA_BUTTON
dans leur manifeste. Pour cette raison (ou peut-être une autre), ils ne peuvent pas être contrôlés via un routeur à bouton multimédia. Je sais que par exemple Music Unlimited peut être contrôlé via AVRCP car je l'ai lu dans un commentaire d'utilisateur et j'ai également pu le faire fonctionner une fois mais malheureusement il n'est pas reproductible. Donc, dans ces cas, il semble que nous devons attendre la mise à jour d'une application avec une implémentation propre de la gestion des événements AVRCP.Selon le wiki de media-button-router "La gestion de l'intention des boutons multimédias se fait par le biais de diffusions ordonnées, et chaque application définit sa propre priorité de réception." Il pourrait donc être possible d'écrire une application qui affiche ces priorités et, en fait, vous permettrait de déterminer quelle application va démarrer. Cependant, je ne connais pas une telle application.
la source
Ils ont finalement ajouté une section pour répondre à cette question exacte: https://developer.android.com/guide/topics/media-apps/mediabuttons.html
la source
Peut-être que cela aidera un peu:
Samsung S5 -> Récepteur Bluetooth + prises téléphoniques intra-auriculaires
J'utilise Samsung S5, d'abord avec l'application 7digital pour télécharger et jouer de la musique. Ensuite, j'ai changé et utilisé Cloudplayer. Mais chaque fois que Clouplayer joue et que j'appuie sur le bouton pause / lecture de mon récepteur Bluetooth, mon application 7digital commencera à jouer de la musique. Je n'ai pu modifier aucun paramètre pour modifier la lecture / pause Bluetooth vers Cloudplayer. J'ai ensuite supprimé toute ma musique 7digital téléchargée et réessayé. Problème résolu! La lecture / pause est en quelque sorte liée à Cloudplayer maintenant.
la source
Ce n'est pas un problème avec votre appareil BT. Lorsqu'il est couplé avec votre téléphone, le casque Bluetooth lit le flux A2DP actif lancé à partir du téléphone mobile. S'il s'agit d'un lecteur multimédia standard sur votre téléphone, il peut réagir à toutes les commandes de contrôle AVRCP comme lecture pause saut, fw etc. BT Headset est toujours un flux A2DP actif à venir. Il enverra des messages de contrôle AVRCP sur votre téléphone. C'est maintenant votre téléphone qui est censé acheminer ces commandes vers l'application respective dans la plupart des cas vers la source de streaming A2DP active ou dans votre cas, votre téléphone transfère toujours les commandes AVRCP au lecteur de musique par défaut.
Le mieux serait d'essayer de configurer votre mobile à condition que la source que vous jouez prenne en charge le contrôle AVRCP. Si ce n'est pas le cas, de toute façon, vous ne pouvez rien faire. Si c'est le cas, alors définitivement Mobile devrait permettre à ces commandes AVRCP d'être gérées par votre source de streaming A2DP active.
la source
Cette application serait "Routeur de boutons multimédias" https://play.google.com/store/apps/details?id=com.harleensahni.android.mbr
la source