Cocos2d-x에서 진동/음소거 모드에서 소리 출력 문제해결 방법

2012. 7. 19. 11:04프로그래밍/Cocos2dX

728x90
반응형

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();


매일밤 늦게까지 고생하시는 개발자분들에게 조금이나마 도움이되었으면 하는 바람입니다.

그리고 남는 시간에는 자기개발을....








728x90
반응형