2016-12-09 14 views
0

バックグラウンドサービスを使用してアプリケーションからバックグラウンドサウンドを使って1つのアプリケーションを開発しています。プレーヤーが走っている - 両方のサウンドが互いに衝突する。アンドロイドスタジオで私のアプリのミュージックプレイヤーサウンドとバックグラウンドサウンドの衝突を防ぐ方法

私の質問:どのように実際の

私のアプリの音楽プレーヤーの音と背景音の衝突を防ぐために:お互いに音楽の衝突。

が期待されています:プレイヤーが実行中の場合は、一時停止し、背景音が である必要があります。

+0

@ianhanniballakeが立ち上げて発表したMediaBrowserServiceCompatを終了した後、メディアプレイヤーと完全にやりとりしてください。 MediaPlayerの一部を実装する前に、MediaPlayer全体を読む必要があります。もしあなたがそれを踏まえれば、この非常に基本的な現象がドキュメントに書かれているかもしれません。この最初のhttps://www.youtube.com/watch?v=FBC1FgWe5X4から始め、https://www.youtube.com/watch?v=XQwe30cZffg –

+0

@DushyantSutharにご連絡ください。ありがとうございます。しかしこれは5ヶ月前、私はアンドロイドで新しく、私はすでにそれを読んでいましたが、まだ私は問題があったので、私はこの質問を投稿します。 –

答えて

1

あなたはrequestAudioFocus()と呼ぶことによってrequest audio focusを入力する必要があります。これは、他のアプリに、何かを再生したいということと、停止する必要があることを通知します(バックグラウンドサウンドを連続して再生する場合には、AUDIOFOCUS_GAINを要求する場合)。ただ、他のアプリと同じように、あなたは他のアプリは、オーディオフォーカスを要求し、あなたの背景音を止める尊重しなければならない - requestAudioFocusは、あなたがOnAudioFocusChangeListenerに渡す必要があること

注意。

注:バックグラウンドサウンド(およびオーディオフォーカスのリクエスト)は常に無効にする必要があります。これにより、ユーザーはアプリ内であっても音楽を聴き続けることができます。

+0

私はどこでrequestAudioFocus()を書くと思いますか?使い方? –

+0

答えの最初のリンクを読んでいますか? "あなたのアプリがオーディオを再生する前に、" – ianhanniballake

+0

を使用するストリームのオーディオフォーカスを保持する必要があります。とてもianhanniballakeが動作しています、どうすればそのメディアプレーヤーの音楽を再開できますか? –

1

この問題を解決する方法は、音楽プレーヤーを停止してアプリケーションの背景音楽を再生することで2つの音楽の衝突を解決するだけです。

AudioManager.OnAudioFocusChangeListener afChangeListener; 

AudioManager am = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE); 
        int result = am.requestAudioFocus(afChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN); 

        if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { 
         // Start playback. 
         mPlayer.setLooping(true); 
         final float volume = (float) (1 - (Math.log(MAX_VOLUME - 85)/Math.log(MAX_VOLUME))); 
         mPlayer.setVolume(volume, volume); 
         mPlayer.start(); 
        } 

       } catch (Exception e) { 
        e.printStackTrace(); 
       } 

注:音楽を再開するためのコードではなく、音楽を停止するためのコードです。

関連する問題