【发布时间】:2015-09-03 14:25:27
【问题描述】:
我在 Marmalade SDK 7.8.0 之上使用 Cocos2d-X 2.2.6 开发游戏,在设置 Cocos Denshion 简单音频引擎的音效音量时遇到了一些问题。
我的代码是这样的:
void AudioHelper::init()
{
s3eResult result;
context = GameContext::getInstance();
s3eSoundSetInt(S3E_SOUND_DEFAULT_FREQ, 44100);
audioEngine = SimpleAudioEngine::sharedEngine();
preloadSoundEffects();
setVolume(context->getSoundVolume());
}
void AudioHelper::preloadSoundEffects()
{
unsigned int i;
CCArray *keysArray;
CCString *key;
const CCString *sound;
keysArray = soundEffects->allKeys();
for (i = 0; i < keysArray->count(); i++)
{
key = (CCString *) keysArray->objectAtIndex(i);
sound = soundEffects->valueForKey(key->getCString());
audioEngine->preloadEffect(sound->getCString());
}
}
void AudioHelper::setVolume(int volumeLevel)
{
float volume;
// Note: there are 6 volume levels in my game, they go from
// 0 (max volume) to 5 (no sound).
volume = 1 - volumeLevel / 5.0;
audioEngine->setEffectsVolume(volume);
}
void AudioHelper::playSoundEffect(const char *effectKey)
{
const CCString *sound;
int volume;
sound = soundEffects->valueForKey(effectKey);
if (sound != NULL)
audioEngine->playEffect(sound->getCString());
}
问题是当我调用 setVolume 方法时音效音量没有改变,除非我将音量级别参数设置为 5(无声音)。发生这种情况时,不会播放任何声音(如预期的那样)。
我做错了什么?
【问题讨论】:
标签: android ios audio cocos2d-x marmalade