2017-12-07 8 views
0

外部メディアプレーヤーが再生されている場合は、メディアプレーヤーを停止します。外部メディアプレーヤーがアンドロイドで再生しているかどうかを確認する方法は?

私は次のコードを実装しましたが、私のアプリメディアプレーヤーが再生されているときでも呼び出されます。

if (audioManager.isMusicActive()) { 
        return; 
       } 

アプリ内メディアプレーヤーと外部メディアプレーヤーを区別する方法を教えてください。

ご協力いただければ幸いです。

+0

これまでに行ってください[https://stackoverflow.com/a/18343457/5308778](https://stackoverflow.com/a/18343457/5308778) – Lucky

+0

@LakshayJuneja - そのようなメソッドはありませんmediaPlayer.getStatus ()。 – Ragini

+0

これを試すことができます[https://stackoverflow.com/a/28805205​​/5308778](https://stackoverflow.com/a/28805205​​/5308778) – Lucky

答えて

1

複数のAndroidアプリで同時に同じ出力ストリームにオーディオを再生することができます システムはすべてをすべて混合します。これは技術的に印象的な ですが、ユーザーにとって非常に悪化する可能性があります。 すべての音楽アプリが同時に再生されるのを避けるため、Androidでは音声フォーカスのアイデア を紹介しています。一度に1つのアプリケーションだけが音声のフォーカスを保持できます。さらに

A行儀オーディオアプリはこれら 一般的なガイドラインに従って、オーディオフォーカスを管理する必要がありますすぐにプレーを開始する前に、

コールrequestAudioFocus()と を呼び出していることを確認しますAUDIOFOCUS_REQUEST_GRANTEDを返します。このガイドで説明するように アプリケーションを設計する場合、requestAudioFocus() の呼び出しは、メディアセッションのonPlay()コールバックで行う必要があります。 別のアプリケーションでオーディオフォーカスが得られたら、再生を停止または一時停止するか、 音量を下げます。再生が停止すると、オーディオフォーカスを放棄します。

あなたが開発者linkから詳細を確認することができます:オーディオフォーカスは ランニングでのAndroidのバージョンによって異なり が処理されます。

関連する問題