음악 플레이어 앱을 만들고 있습니다.Android : MediaPlayer AUDIOFOCUS_LOSS & setOnErrorListener() 문제
내 응용 프로그램에서 AudioFocus를 잃어 버렸는지 확인 중이면 재생이 중지됩니다. 그러나 이것은 트랙을 재생할 때 멈추고 멈추고 다시 트랙을 재생하는 한 가지 문제를 야기하고 있습니다. switch case AudioManager.AUDIOFOCUS_LOSS
이 전화를 끊어서 플레이어가 포커스를 잃을 때 멈추었습니다.
내 자신의 앱이 그 자체에 초점을 잃고 있습니다. 분명히, 이것들은 내 의도가 아니 었습니다. 다른 음악 플레이어가 포커스를 요청했을 때 호출되기를 원했습니다.
private OnAudioFocusChangeListener focusChangeListener = new OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
switch (focusChange) {
case AudioManager.AUDIOFOCUS_LOSS:
if (mPlayer.isPlaying()) {
stopPlayback();
}
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
if (mPlayer.isPlaying()) {
mPlayer.pause();
}
break;
case AudioManager.AUDIOFOCUS_GAIN:
if (!mPlayer.isPlaying()) {
initiatePlayback();
}
break;
}
}
};
내가지고 있다고 하나 더 문제, 예외가있다 IllegalStateException
입니다.
이것은 코드가 case AudioManager.AUDIOFOCUS_LOSS
에 도달하면 내 뮤직 플레이어가 잘못된 상태임을 의미합니다. 그래서를 확인하기 위해, 내가 사용 OnErrorListener
등록 :
//Inside Service - onCreate() Method
mPlayer.setOnErrorListener(mErrorListener);
을하지만이 리스너가 호출되지 가져옵니다 않습니다. 도움이 필요하시면 알려드립니다.
focusChangeListener의 단일 복사본을 유지 관리하는 방법 ?? 나는 싱글 톤을 사용하지만, 활동 전환 플레이어가 그 초점 손실을 막을 수 있습니다 ... 당신이 나를 도울 수 ... – Sachin