バックグラウンドでデフォルトの音楽プレーヤーが動作していて、私のアプリを使って音楽を再生すると、両方が同時に動作します。他のAPPの音楽を停止する
バックグラウンドミュージックプレーヤーを停止する方法はありますか?
バックグラウンドでデフォルトの音楽プレーヤーが動作していて、私のアプリを使って音楽を再生すると、両方が同時に動作します。他のAPPの音楽を停止する
バックグラウンドミュージックプレーヤーを停止する方法はありますか?
MediaplayerのAudioFocus
を実装する必要があります。これを行うには、AudioManager
のインスタンスを取得する必要があります。インスタンスを取得したら、requestAudioFocus
を使用できます。
AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
// Request audio focus for playback
int result = am.requestAudioFocus(focusChangeListener,
// Use the music stream.
AudioManager.STREAM_MUSIC,
// Request permanent focus.
AudioManager.AUDIOFOCUS_GAIN);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
Log.d("AudioFocus", "Audio focus received");
return true;
} else {
Log.d("AudioFocus", "Audio focus NOT received");
return false;
}
}
AudioFocus
は、それを要求する各アプリケーションに割り当てられています。あなたのアプリがフォーカスを受け取ると、フォーカスが変化したときのコールバックを提供するAudioManager.OnAudioFocusChangeListener
を渡すことができます。
アプリケーションがオーディオフォーカスを取得し、別のアプリケーションがオーディオフォーカスを要求すると、フォーカスは他のアプリケーションに与えられます。 AndroidはOnAudioFocusChangeListener
経由であなたのアプリに通知し、あなたのアプリがその変更に対応できるようにします。フォーカスイベントを受け取るには、このようにAudioManager.OnAudioFocusChangeListener
のインスタンスを渡す必要があります。
private OnAudioFocusChangeListener focusChangeListener =
new OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
AudioManager am =(AudioManager)getSystemService(Context.AUDIO_SERVICE);
switch (focusChange) {
case (AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK) :
// Lower the volume while ducking.
mediaPlayer.setVolume(0.2f, 0.2f);
break;
case (AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) :
pause();
break;
case (AudioManager.AUDIOFOCUS_LOSS) :
stop();
ComponentName component =new ComponentName(AudioPlayerActivity.this,MediaControlReceiver.class);
am.unregisterMediaButtonEventReceiver(component);
break;
case (AudioManager.AUDIOFOCUS_GAIN) :
// Return the volume to normal and resume if paused.
mediaPlayer.setVolume(1f, 1f);
mediaPlayer.start();
break;
default: break;
}
}
};
リファレンスドキュメント:https://developer.android.com/guide/topics/media-apps/volume-and-earphones.html
おかげAbhi、今、私は音楽を停止することができるが、再開することができません。 – user8269038
他のアプリはオーディオのフォーカスを要求する必要があります。そのアプリケーションに付与されます。 – Abhi
私はあなたが言うことをあなたに教えてくれませんでしたか? – user8269038