FMOD: заметки очевидца. Часть первая.
От: _chipset Россия http://merlinko.com
Дата: 27.03.05 01:12
Оценка: 14 (2)
#Имя: FAQ.audio.fmod
Привет всем
Начал тут знакомиться с библиотекой FMOD, решил попутно делиться опытом с коллегами, можь кому и интересно будет..
Эта часть, как сказал Рома Мик, здесь
Автор: Рома Мик
Дата: 22.03.05
:

Действительно полезная статья для тех, кому некогда самому набивать все шишки.


Читаем..
Введение

Не секрет, что одной из основных составляющих хорошей игры является музыка и звук. Кажется бредовой мысль о игре без звукового сопровождения, не правда ли?

Однако, стандартными средствами Win32Api очень сложно воспроизвести звук формата MP3, или, набирающего популярность OGG. Кроме того, в 3D шутерах возникает необходимость в 3D-звуке, который также, очень трудно реализовать.

Некоторые пытаются использовать DirectMusic, но он не предоставляет большого ассортимента средств и полностью ограничен платформой Windows, что может быть и не так уж важно для программистов DirectX'а, но может стать стеной для тех кто хочет портировать свои программы на другие платформы...

И тут на помощь, приходят сторонние библиотеки, наподобие FMOD. Про неё я собственно и поведу рассказ сегодня.

FMOD поддерживает популярные сегодня форматы записи звука: midi, mp3, ogg vorbis, wma, aiff; позволяет записывать звук, работать с интернет-потоками, риппинг дисков, MMX, хардварная акселлерация EAX 2&3 и многое другое...

Список поддерживаемых платформ совсем нехилый: Windows, Linux, Macintosh, GameCube, PS2 и XBox! Из языков программирования, FMOD поддерживает: C++, C, Delphi и VB.

Из недостатков я хотел бы подчеркнуть: процедурное программирование и неподдерживающаяся Java.

Установка

Я надеюсь, вы уже подобрали отвисшую челюсть, так что я могу как-бы продолжать.. Официальный сайт проекта — http://fmod.org. Смело шагаем по адресу — http://fmod.org/ifmoddownload.html, выбираем нужный дистрибутив в зависимости от вашей операционки и качаем..

Скачали? Хорошо, продолжим.. Я выбрал Windows дистрибутив, надеюсь Linux-девелоперы смогут проложить аналогии и установить FMOD. Кроме того, я буду использовать, не Delphi, как могли подумать некоторые, а C++ и компилятор VC7.1.

Я просто распаковал архив в временную директорию и начал раскидывать файлы по нужным папкам FAR'ом . Для установки FMOD'а нам нужна его субдиректория по имени "api", там находятся библиотеки и хидэры.

В папке api\inc, лежат *.h файлы которые нам необходимо скопировать в соответствующую директорию визуала. У меня это "F:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\". Для порядка, создадим поддиректорию \fmod и скопируем туда всё содержимое api\inc.
Теперь скопируем нужный lib файл в директорию для lib файлов. У меня она находится в "F:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib". В директории фмода api\lib находится несколько файлов, из названий которых мы видим, что сабж поддерживает Watcom C(fmodwc.lib), LCC(fmodlcc.lib), Borland C(fmodbc.lib), 64-битный VC(fmod64vc.lib), просто VC(fmodvc.lib) и наконец g++(libfmod.a) Сейчас нам нужен fmodvc.lib, который мы и копируем..

Последним шагом нам необходимо положить динамическую библиотеку api\fmod.dll (160 KB), которую нам предстоит таскать за собой.. Пока, давайте просто скопируем её в вашу системную директорию (у меня: F:\Windows\System32).

Начинаем кодировать

Теперь, можно попробовать FMOD на деле. Создайте Win32 Console Project (не забываем, у меня VC7.1) с параметром Empty, добавьте файл типа .cpp и скопируйте следующий код:


#include <iostream> // см. ниже
#include <fmod\fmod.h>//мы помним, мы положили в папку fmod 
using namespace std;//заюзываем STL
#pragma comment(lib, "fmodvc.lib") /*подключаем fmodvc.lib, который, я надеюсь вы положили в правильную папку */
int main() //главная функция
{
    FSOUND_Init(44100,32,0); 
/*теперь пошёл FMOD, данной строчкой, мы даём понять что мы хотим звука частотой 44100 с максимум 32 каналами и нефига нам не нужно пока флагов */
    FSOUND_STREAM *stream = //эдакий хендл на звуковой поток    
    FSOUND_Stream_Open("15-Roulette.mp3",FSOUND_2D,0,0); /*открывает файл
15-Roulette.mp3, который лежит в папке проекта, без 3D ламерства (шучу :) ) , третий параметр указывает что мы хотим проигрывать с самого начала, а 
четвёртый обозначает длину желаемого проигрывания */
    FSOUND_Stream_Play(0,stream); //проигрываем stream
    int i;//см. ниже
    cin>>i;//тут, я таким ламерским способом жду ввода пользователя
    FSOUND_Stream_Close(stream); //когда юзер ввёл что-нибудь - закрываем
    return 1; //и возвращаем системе что всё пучком
}



Всё должно работать

Завершение

Теперь про самое главное. В папке "место_куда_вы_распаковали_fmod\documentation" находится файл fmod.chm, который активно изображает из себя MSDN и предоставляет справку по всем функциям FMOD'a. С ним вам придется активно работать...

Ваши комментарии, пожелания или оскорбления

Автор не несёт уголовной ответственности за грамматические ошибки.
"Всё что не убивает нас, делает нас сильнее..."
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.