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


18

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

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

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

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

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

実用的な面では、私は興味があります:

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

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


1
これはことを適切な方法について議論-私は、Android開発者のブログからこれに関連するいくつかの良い情報を見つけるために管理しなかったはずです:2.2でのアプリケーションで実現することを「アプリケーションが相互に素敵な(r)を再生することができます。リモートコントロールボタンの取り扱い」を
イラーリ・カジャステ

2016年、これはまだ問題です。--iOSからの移行は、これまでのAndroidの最も刺激的な部分である可能性があります
。/-Squazz

回答:


11

リンクされた質問のいずれかで既に述べたmedia-button-routerは、現在どのアプリが音楽を再生しているかを把握し、AVRCPイベントをディスパッチしようとします。さらに、AVRCPイベントをリッスンすることを宣言した、インストールされているすべてのアプリをリストします。

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

media-button-routerのwikiに よると、「Media Button Intentの処理は、順序付けられたブロードキャストを通じて行われ、各アプリは受信の優先順位を設定します。」そのため、これらの優先順位を表示し、実際にはどのアプリケーションが起動するかを判断できるアプリを作成することができます。ただし、このようなアプリについては知りません。



0

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

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

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


0

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

再生するソースがAVRCP制御をサポートしている場合は、モバイルを構成してみることをお勧めします。それでも解決しない場合は、何もできません。もしそうなら、確実にモバイルはこれらのAVRCPコマンドがアクティブなA2DPストリーミングソースによって処理されることを許可するはずです。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.