내 응용 프로그램 (! 내가이 범위 내 자신의 두이) 내가 개발을 존중하기 위해 노력하고있어안드로이드 - 어린이 응용 프로그램, 배경 음악과 종료 버튼
세 어린이 1 ~ 3을 위해 디자인 된 게임이다 앱 디자인을위한 가이드 라인을 따르고 사용자가 (부모와 작은 녀석) 기대하는 것과 정확히 일치하는 경험을 시작하십시오.
게임이 시작되면, 게임을 시작할 때 방해받지 않고 AudioManager.OnAudioFocusChangeListener (시작, 볼륨 레벨 변경, 종료 등)를 구현하는 서비스를 통해 (평화로운) 배경 음악을 시작합니다. 각 게임 화면의 작은 버튼으로 켜기/끄기를 전환 할 수있는 옵션이 있습니다.
안드로이드 방식으로 앱을 종료하기 위해 홈 버튼을 누르면 (예 : 종료 버튼/옵션 없음) 제외한 모든 기능이 예상대로 작동합니다. 음악은 계속 무기한 재생됩니다. 내 스위치에서 변경할 수있는 것이 있습니까 (아래 코드 참조)? 나는 멈춤을 멈추라는 말을 할 수 없기 때문에 활동 들간의 완벽한 배경 음악이 망가져 버린다.
이탈 옵션을 만들 수있는 일반적인 앱 디자인에 대한 사례입니다 ('작별 인사를하는 귀여운 동물'로 집을 누르면 프롬프트가 표시됩니다.) 및 종료 및 취소 버튼)? 다른 옵션이 있습니까?
언제나처럼, 나는 비틀 거리며 나를 인도 해 주셔서 감사합니다! =)
@Override
public void onAudioFocusChange(int focusChange) {
// TODO Auto-generated method stub
switch (focusChange) {
case AudioManager.AUDIOFOCUS_GAIN:
Log.v(TAG, "AUDIOFOCUS_GAIN");
// resume playback
if (mp == null) {mp = MediaPlayer.create(this, R.raw.backgroundmusic); mp.start(); mp.setLooping(true);}
else if (!mp.isPlaying()) mp.start();
mp.setVolume(1.0f, 1.0f);
break;
case AudioManager.AUDIOFOCUS_LOSS:
Log.v(TAG, "AUDIOFOCUS_LOSS");
// Lost focus for an unbounded amount of time: stop playback and release media player
if (mp.isPlaying())mp.stop();
mp.release();
mp = null;
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
Log.v(TAG, "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 (mp.isPlaying()) mp.pause();
break;
case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
Log.v(TAG, "AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK");
// Lost focus for a short time, but it's ok to keep playing
// at an attenuated level
if (mp.isPlaying()) mp.setVolume(0.1f, 0.1f);
break;
}
}
대단한 답변이었습니다. 내가 원했던 바를 정확히 수행합니다. 앱이 최고의 활동이 아닐 때 음악을 멈 춥니 다. 고맙습니다! –