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 |
