所以我看到了其他遊戲示例,並且看到了遊戲如何使用暫停按鈕時聲音暫停的功能,並且在恢復時,聲音恢復到原來的位置。Cocos2D CocosDenshion如何暫停...不停止聲音效果
我自己找到了答案。
所以我看到了其他遊戲示例,並且看到了遊戲如何使用暫停按鈕時聲音暫停的功能,並且在恢復時,聲音恢復到原來的位置。Cocos2D CocosDenshion如何暫停...不停止聲音效果
我自己找到了答案。
所以我做了一些研究,發現這個很棒的修復。那麼不是一個修復,而是代碼的補充。更重要的是,它確實有效!
在CocosDenshion中包含SimpleAudioEngine以緩解您遊戲的音頻問題,您需要編輯該文件以便能夠暫停您的音效。
這是您需要插入CDSoundEngine類中的代碼,它位於CocosDenshion類內部的SimpleAudioEngine類中。複製它酷似如下:需要SimpleAudioEngine類被添加到能夠直接在您的cocos2d遊戲代碼使用方法
- (void)pauseAllSounds
{
for (int i=0; i < sourceTotal_; i++)
{
ALint state;
alGetSourcei(_sources[i].sourceId, AL_SOURCE_STATE, &state);
if(state == AL_PLAYING)
{
alSourcePause(_sources[i].sourceId);
}
}
alGetError();
}
- (void)resumeAllSounds
{
for (int i=0; i < sourceTotal_; i++)
{
ALint state;
alGetSourcei(_sources[i].sourceId, AL_SOURCE_STATE, &state);
if(state == AL_PAUSED)
{
alSourcePlay(_sources[i].sourceId);
}
}
alGetError();
}
下面的代碼。
- (void)pauseAllEffects
{
[soundEngine pauseAllSounds];
}
- (void)resumeAllEffects
{
[soundEngine resumeAllSounds];
}
我在我的遊戲中使用了這段代碼,並且完美地工作。
免責聲明:本人不爲任何時間索賠本修正案。這是我在本網站發現的:http://nial.me/2012/06/pausing-and-resuming-sound-effects-in-cocos2d/然而,由於我沒有看到我提供的STACKOVERFLOW中的這個問題的任何類似解決方案。
如果您有此問題的答案,請將其作爲下面的答案發布。 – Voldemort
如果你是指我,我並沒有降低它。但是你應該知道在回答部分提出答案是常識。我想你是爲此而低估的,這很有道理。你不應該侮辱隨機的人糾正你。 – Voldemort
我不是指你兄弟。寒意。那就是爲什麼我寫了'某人'。 但無論如何。無論如何謝謝你的建議。 –