当Android收到短信时,通知会发送AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK焦点变更。我通过将媒体播放器的音量减少50%来处理这个问题。
E.g。
public void onAudioFocusChange(int focusChange) {
switch (focusChange) {
// E.g. SMS
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK :
playerDuck(true);
break;
case AudioManager.AUDIOFOCUS_GAIN :
case AudioManager.AUDIOFOCUS_GAIN_TRANSIENT :
playerDuck(false);
playerResume();
break;
}
}
public synchronized void playerDuck(boolean duck) {
if (mediaPlayer != null) {
// Reduce the volume by half when ducking - otherwise play at full volume.
mediaPlayer.setVolume(duck ? 0.5f : 1.0f, duck ? 0.5f : 1.0f);
}
}
通过设备的扬声器收听媒体播放器时,此功能正常,但如果您插入耳机,则暂时降低音量,播放通知时媒体播放器会静音。
插入耳机时,如何以不同方式处理音频焦点的变化?