効果音を再生する時に裏で音楽再生アプリ等で再生していると音が重なって聞き取れない!
という時にバックグラウンドの音を一時的にミュートする方法
バックグラウンド音源をミュート
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
AudioFocusRequest focusRequest =
new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)
.setAudioAttributes(new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build())
.setAcceptsDelayedFocusGain(true)
.setOnAudioFocusChangeListener(audio_focus_listener)
.build();
audioManager.requestAudioFocus(focusRequest);
} else {
audioManager.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
}
バックグラウンド音源のミュートを解除
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
AudioFocusRequest focusRequest =
new AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)
.setAudioAttributes(new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build())
.setAcceptsDelayedFocusGain(true)
.setOnAudioFocusChangeListener(audio_focus_listener)
.build();
audioManager.abandonAudioFocusRequest(focusRequest);
} else{
audioManager.abandonAudioFocus(null);
}