Open eligantRU opened 8 years ago
Долой OpenAL, даёшь SDL_mixer
Пример для однократного воспроизведения звука(без отслеживания ошибок):
SDL_Init(SDL_INIT_AUDIO);
Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 4096);
Mix_Chunk * sound = Mix_LoadWAV("res/test.wav");
Mix_PlayChannel(-1, sound, 0);
while (Mix_Playing(-1))
{
// Do sth
}
Mix_FreeChunk(sound);
Mix_CloseAudio();
Пример для бесконечного воспроизведения музыки(без отслеживания ошибок):
SDL_Init(SDL_INIT_AUDIO);
Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 4096);
Mix_Music * music = Mix_LoadMUS("res/test.wav");
Mix_PlayMusic(music, -1);
while (Mix_PlayingMusic())
{
// Do sth
}
Mix_FreeMusic(music);
Mix_CloseAudio();
Для изменения уровня громкости:
Mix_Volume(-1, MIX_MAX_VOLUME);
Реализовал все вспомогательные классы, осталось прикрутить звуковое сопровождение на какие-либо события
void (PlaySound)(const CSound & audio);
Собственно сабж Для данной задачи отлично подойдёт OpenAL