Cocos2d iphone Cocos2D CocosDenshion如何暂停…而不是停止音效

Cocos2d iphone Cocos2D CocosDenshion如何暂停…而不是停止音效,cocos2d-iphone,Cocos2d Iphone,所以我看到了其他游戏的例子,看到了游戏是如何有这样一个功能的:当按下暂停按钮时声音暂停,当恢复时,声音准确地恢复到原来的位置 我自己找到了答案。所以我做了一些研究,找到了这个很棒的解决方案。嗯,这不是一个修复,而是对代码的一个补充。更重要的是,它确实有效 在包括SimpleAudioEngine的CocosDenshion中,为了缓解游戏的音频问题,您需要编辑文件以暂停您的音效 这是您需要插入到CDSoundEngine类中的代码,CDSoundEngine类位于CocosDenshion类中的

所以我看到了其他游戏的例子,看到了游戏是如何有这样一个功能的:当按下暂停按钮时声音暂停,当恢复时,声音准确地恢复到原来的位置


我自己找到了答案。

所以我做了一些研究,找到了这个很棒的解决方案。嗯,这不是一个修复,而是对代码的一个补充。更重要的是,它确实有效

在包括SimpleAudioEngine的CocosDenshion中,为了缓解游戏的音频问题,您需要编辑文件以暂停您的音效

这是您需要插入到CDSoundEngine类中的代码,CDSoundEngine类位于CocosDenshion类中的SimpleAudioEngine类中。完全按照以下方式复制:

- (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();
}
我在游戏中使用了这段代码,效果非常好


免责声明:我在任何时候都不会因为这个补丁而要求赔偿。这是我在这个网站上发现的:但是,因为我在STACKOVERFLOW中没有看到任何类似的解决方案,所以我提供了它。

所以我做了一些研究,找到了这个很棒的解决方案。嗯,这不是一个修复,而是对代码的一个补充。更重要的是,它确实有效

在包括SimpleAudioEngine的CocosDenshion中,为了缓解游戏的音频问题,您需要编辑文件以暂停您的音效

这是您需要插入到CDSoundEngine类中的代码,CDSoundEngine类位于CocosDenshion类中的SimpleAudioEngine类中。完全按照以下方式复制:

- (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();
}
我在游戏中使用了这段代码,效果非常好


免责声明:我在任何时候都不会因为这个补丁而要求赔偿。这是我在这个网站上发现的:但是,因为我在STACKOVERFLOW中没有看到任何类似的解决方案,所以我提供了它。

如果你有这个问题的答案,请在下面作为答案发布。如果你是指我,我没有投反对票。但是你应该知道,把答案放在答案部分是常识。我想你被否决了,这是有道理的。你不应该因为别人纠正你而侮辱他们,我不是说你,兄弟。寒冷这就是我写“某人”的原因。但不管怎样都可以。不管怎样,谢谢你的建议。如果你有这个问题的答案,把它贴在下面作为答案。如果你是说我,我没有投反对票。但是你应该知道,把答案放在答案部分是常识。我想你被否决了,这是有道理的。你不应该因为别人纠正你而侮辱他们,我不是说你,兄弟。寒冷这就是我写“某人”的原因。但不管怎样都可以。无论如何,谢谢你的建议。