0

私はAndroidメディアプレーヤーアプリケーションに取り組んでいます(Android ver 2.3-4.1がサポートされます)。スピーカーから有線ヘッドセット、有線ヘッドセットからBTなど、オーディオパスの遷移を検出したいのですが、これらの遷移に対してアプリで何らかのアクションを実行する必要があります。では、オーディオパスを切り替えるときにAndroidが提供する単一の方法(できればブロードキャストレシーバー)はありますか?可能であれば、有線ヘッドセットとBTヘッドセットの接続/切断を別々に検出することは避けたいと思います。

私はまだAndroidに適応していて、ここでいくつかの助けを期待しています。

前もって感謝します。

4

1 に答える 1

0

Jellybean以降では、 MediaRouterクラスを使用して必要な情報を取得できる場合があります。

MediaRouterクラスには、 RouteInfoオブジェクトgetSystemAudioRoute()を返すという名前の隠しメソッドがあります。MediaRouterクラスでリフレクションを使用することにより、そのメソッドを取得できるはずです。 RouteInfoを取得したら、それを呼び出すことができます。これにより、現在のオーディオルートの名前がCharSequenceとして返されます。 ルーティングするストリームタイプごとに決定するのはオーディオHAL次第であるため、これはオーディオがルーティングされる場所の強力なヒントになることに注意してください。
getName()

ACTION_HEADSET_PLUGJellybeanより前のAndroidバージョンでは、関連するインテント( 、、など)のブロードキャストを聞くことができましたACTION_HDMI_AUDIO_PLUG

于 2012-12-13T13:53:40.223 に答える