どのアプリケーションがBluetoothAVRCPコマンドに対して動作するかを決定するものは何ですか?

背景: A2DP / AVRCP Bluetoothヘッドセット( Nokia BH -505 )ポッドキャストと音楽の両方を聴くために積極的に使用しています。もちろん、私はさまざまなアプリでこれらを聴いています。 Bluetoothヘッドセットには、オーディオに関連するいくつかの「コマンド」(AVRCP)ボタンがあります。具体的には、「次のトラック」、「前のトラック」、「再生/一時停止」

現在、コマンドのいずれかを押すたびに、インストールした音楽プレーヤーの1つ( Meridian )は、アクティブでない場合でも常にコマンドを取得します。したがって、[再生/一時停止]をクリックするとポッドキャスト( DogCatcher )を一時停止する場合は、代わりにMeridianがアクティブになり、ポッドキャストと一緒に音楽の再生を開始します。

両方のプレーヤーがヘッドセットを使用している:DoggCatcherの「ヘッドセットへのバインド」がオンになっていて、Meridianの「ヘッドセットボタン」がオンになっています。現在、GT-S5570でルート化されていないストックAndroid 2.2.1を使用していますが、ルート化して2.3 CyanogenModにアップグレードしている可能性があります(など)、将来的に。

詳細を無視すると、これに関する私の質問はより一般的です:

  • Androidはどのアプリを取得するかをどのように決定しますかこれらのコマンドに反応するには?非常に技術的な答えにも興味があります。

実用面では、次のことに興味があります。

  • どのアプリケーションがコマンドを受け取るかを決定するために、各アプリケーションの設定をいじる必要がありますか、それともこれを決定する一般的な方法はありますか?
  • 構成する方法はありますか?これにより、実際にアクティブなアプリケーションが常に自動的に優先されますか? (別の質問で部分的に尋ねられたように)

この質問と同様の質問との違い:

コメント

回答

media-button-router 、リンクされた質問の1つですでに言及されている、試行現在音楽を再生しているアプリと、それにAVRCPイベントをディスパッチするアプリ。さらに、インストールされているすべてのアプリが一覧表示され、AVRCPイベントをリッスンするように宣言します。

AVRCPを複雑にする理由: Sonys Music Unlimited は、マニフェストでandroid.intent.action.MEDIA_BUTTONを宣言していないようです。このため(またはその他の理由で)、メディアを介して制御することはできません-ボタンルーター。私はそれを知っています、例えばMusic Unlimitedは、ユーザーのコメントで読んだり、 1回実行できたので、AVRCPを介して制御できますが、残念ながら再現できません。そのため、そのような場合は、再現する必要があるようです。 AVRCPイベント処理のクリーンな実装によるアプリの更新を待ちます。

media-button-routerのwikiによると 「メディアボタンインテントの処理は順序付けられたブロードキャストを通じて行われ、各アプリはそれを受信するための独自の優先順位を設定します。」したがって、これらの優先順位を表示するアプリを作成することは可能かもしれません。どのアプリケーションを起動するかを決定できます。しかし、そのようなアプリについては知りません。

回答

彼らはついに、この正確な質問に答えるためのセクションを追加しました: https://developer.android.com/guide/topics/media-apps/mediabuttons.html

回答

おそらくこれは少し役立つでしょう:

Samsung S5-> Bluetoothレシーバー+ InEar電話プラグ

最初に7digitalアプリで音楽をダウンロードして再生するSamsungS5を使用しています。次に、Cloudplayerを変更して使用しました。しかし、Clouplayerの再生中に、Bluetoothレシーバーの一時停止/再生ボタンを押すたびに、7digitalアプリが音楽の再生を開始します。 Bluetoothの再生/一時停止をCloudplayerに変更するための設定を変更できませんでした。次に、ダウンロードした7digitalの音楽をすべて削除して、再試行しました。問題が解決しました!再生/一時停止は、どういうわけかCloudplayerにリンクされています。

回答

BTデバイスに問題はありません。 Bluetoothヘッドセットは、携帯電話とペアリングすると、携帯電話から開始されたアクティブなA2DPストリームを再生します。それがお使いの携帯電話の標準的なメディアプレーヤーである場合、再生一時停止スキップ、fwなどのすべてのAVRCP制御コマンドに反応できます。WebまたはAVRCPに対するそのようなすべての制御を実装していない他のプレーヤーで何かを再生すると、 BTヘッドセットはまだアクティブなA2DPストリームです。それはあなたの電話にAVRCP制御メッセージを送ります。これで、これらのコマンドをそれぞれのアプリにルーティングし、ほとんどの場合アクティブなA2DPストリーミングソースにルーティングすることになっているのは携帯電話です。または、携帯電話がAVRCPコマンドをデフォルトの音楽プレーヤーに転送している場合もあります。

最善の策は、再生しているソースがAVRCP制御をサポートしている場合は、モバイルを構成してみることです。そうでない場合は、とにかく何もできません。そうであれば、間違いなくMobileは、これらのAVRCPコマンドをアクティブなA2DPストリーミングソースで処理できるようにする必要があります。

回答

このアプリは「メディアボタンルーター」になります https://play.google.com/store/apps/details?id=com.harleensahni.android.mbr

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です