Я пытаюсь сделать паузу в медиаплеерах, когда звонит телефон. Я использую образец кода с сайта android. Это так:
public void onAudioFocusChange(int focusChange) {
switch (focusChange) {
case AudioManager.AUDIOFOCUS_GAIN:
// resume playback
if (mMediaPlayer != null && !mMediaPlayer.isPlaying()) {
mMediaPlayer.start();
mMediaPlayer.setVolume(1.0f, 1.0f);
}
break;
case AudioManager.AUDIOFOCUS_LOSS:
// Lost focus for an unbounded amount of time: stop playback and
// release media player
stopMediaPlayer();
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
// Lost focus for a short time, but we have to stop
// playback. We don't release the media player because playback
// is likely to resume
if (mMediaPlayer.isPlaying())
mMediaPlayer.pause();
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
// Lost focus for a short time, but it ok to keep playing
// at an attenuated level
if (mMediaPlayer.isPlaying())
mMediaPlayer.setVolume(0.1f, 0.1f);
break;
}
}
Когда телефон звонит, AUDIOFOCUS_LOSS_TRANSIENT отправляется; это нормально. И когда вызов заканчивается, AUDIOFOCUS_GAIN отправляется, и игрок продолжает играть; что тоже хорошо. Но сразу после отправки AUDIOFOCUS_GAIN отправляется AUDIOFOCUS_LOSS. Есть идеи, почему они теряют фокус аудио? спасибо заранее.