2012. 7. 19. 11:04ㆍ프로그래밍/Cocos2dX
Cocos2d-X로 멀티플랫폼 게임을 개발중입니다.
iOS에서는 문제 없었지만 안드로이드로 넘어오면서 몇가지 문제가 생깁니다.
그나마 main java소소에서 몇줄 추가로 간단하게 해결할 수 있습니다.
다음 소스를 원하시는 곳에 추가하시면 됩니다.
주로 onCreate() 또는 onStart()에 넣으시면 됩니다. 그럼 현재 모드를 확인해서 Cocos2d-X로 Jni를 이용해서 음소거를 시켜주면 됩니다. 게임 음원 출력 프로세스에서 bool형의 isMute 변수를 만들어서 toggle해주는 방식을 사용하시길 추천드립니다.
//------------------------------------------------------------------------------------------------
// 단말기가 진동모드/음소거모드 일경우에는 mute를 시켜주거나 적절한 처리를 해준다..
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
if(audioManager.getRingerMode()== AudioManager.RINGER_MODE_NORMAL)
{
// 사운드 재생
NativeSetSoundMuteOff();
System.out.println("COCOS2DX : SOUND ON ");
}
else
{
NativeSetSoundMuteOn();
System.out.println("COCOS2DX : SOUND OFF");
}
다음 함수들을 이용해서 실제로 게임에 상태를 음소거로 변경해주면 됩니다.
private native int NativeSetSoundMuteOn();
private native int NativeSetSoundMuteOff();
매일밤 늦게까지 고생하시는 개발자분들에게 조금이나마 도움이되었으면 하는 바람입니다.
그리고 남는 시간에는 자기개발을....
'프로그래밍 > Cocos2dX' 카테고리의 다른 글
Cocos2d-X를 이용해서 국내 오픈마켓 동시 개발.. (2) | 2012.09.11 |
---|---|
Cocos2d-X는 OpenGL ES 2.0이상을 지원합니다. (0) | 2012.09.03 |
Cocos2d-X에서 보안락 화면에서 게임 프로세스 처리방법. (0) | 2012.07.19 |
Cocos2d-X에서 게임 화면 180도로 회전하게 만들기. (0) | 2012.07.18 |
Cocos2d-x에서 java의 signature of a method를 알아내기 (0) | 2012.06.21 |