С использованием Cricket Audio Sound Engine (IOS & андроид) как бы настроить пулемет типа звукового эффекта. Мне нужно уметь воспроизводить много экземпляров звука в секунду. Звуковые эффекты должны накладываться друг на друга.
Мое решение состоит в том, чтобы создать новый CkSound экземпляр и забудь об этом. Я не вижу легкого уничтожения звука без сложного метода отслеживания звука. Не вызовет ли это проблемы с памятью, когда я создаю тысячи CkSounds в течение игровой сессии? Я действительно не хочу отслеживать отдельные звуки для сборки мусора.
// Example sound effect call
void SoundManager::playEffect(const char* name){
// I make a sound , play it , and forget about it
sound = CkSound::newBankSound(g_bank, name);
sound->play();
}
Я не рекомендую создавать экземпляры и не уничтожать их, так как это утечка памяти, поэтому ваше приложение будет использовать все больше и больше памяти с течением времени.
Вы можете попробовать что-то вроде этого …
инициализировать:
const int k_maxSounds = 5; // maximum number of sound instances to be playing at once
CkSound* g_sounds[k_maxSounds];
for (int i = 0; i < k_maxSounds; ++i)
{
g_sounds[i] = CkSound::newBankSound(g_bank, name);
}
чтобы воспроизвести другой экземпляр звука, найдите первый доступный экземпляр и воспроизведите его:
for (int i = 0; i < k_maxSounds; ++i)
{
if (!g_sounds[i]->isPlaying())
{
g_sounds[i]->play();
break;
}
}
-Стив —Cricket Audio Creator ответил по электронной почте
Других решений пока нет …