Представляю мой вариант звуковой библиотеки для игр. Она, впрочем, не позволит играть длительные музыкальные фрагменты, так как все звуки находятся в памяти постоянно.
Итак, как ей пользоваться.
0) Обработкой звука занимается класс CSound, при этом объект cSound создан по умолчанию.
1) Создать функцию обратного вызова:
void audio_callback(void* buf,unsigned int length,void *userdata)
{
cSound.CallBack(buf,length,userdata);
}
2) Привязать эту функцию к классу:
cSound.SetCallBackFunction(audio_callback);
3) Загрузить звук:
cSound.LoadNewSound(FileName,0);//загружаем звуковой файл
0 - это индентификатор звука, т.е. по этому номеру с данным звуком можно будет работать, разумеется, это любое удобное вам число.
4) Запустить звук на выполнение:
cSound.Play(0);
Всё. Одновременно звуков можно запускать довольно много. Т.е. это именно то, что нужно для игры.
Ах да, файлы звуков в собственном примитивном формате - заголовок-длина и сами незапакованные данные. Этот формат делает прилагаемая программа из несжатых wav-файлов с параметрами 44100 на 16 бит, моно. Но это можно переделать при желании.
Последний раз редактировалось Ilsor; 15.08.2008 в 18:49.
|