1. CocosDenshion이 재생중인 effects / bgm 만을 일시정지 하도록 수정한다.
2. AppDelegate.cpp 에서 pause / resume 을 하지 않는다. OS 에서 일시정지 하도록 놔두면 된다.
3. (선택사항) AppController.mm 에서 pauseAllEffects 와 resumeAllEffects 를 ApplicationWillResignActive 와 applicationDidBecomeActive 에 넣어 준다.
앞에 + 표시 되어있는 부분이 추가된 부분이다.
/**** CDAudioManager.m ****/ -(void) pauseBackgroundMusic { + if (![self.backgroundMusic isPlaying]) { + return; + } + [self.backgroundMusic pause]; } /**** CocosDenshion.m ****/ (void) pauseSound:(ALuint) sourceId { if (!functioning_) { return; } + + // only pause a sound id that is playing + ALint state; + alGetSourcei(sourceId, AL_SOURCE_STATE, &state); + if (state != AL_PLAYING) + { + return; + } + alSourcePause(sourceId); alGetError();//Clear error in case we pause any sounds that couldn't be paused }
원본 URL
http://discuss.cocos2d-x.org/t/sound-fx-not-playing-after-a-while/623/25'Development > iOS' 카테고리의 다른 글
iOS 페이스북 링크 사파리에서 열기 (0) | 2014.07.25 |
---|---|
iOS Google Analytics sqlite3 링크 에러 (0) | 2014.07.17 |
didRegisterForRemoteNotificationsWithDeviceToken 함수가 호출되지 않는 경우 (0) | 2014.07.17 |
iOS Facebook SDK SSO 연동 문제 is not registered as a url scheme (0) | 2014.07.11 |
iOS GooglePlayGameService 연동시 로드 되지 않을때 (0) | 2014.07.07 |