#include "../../api/inc/fmod.hpp"
#include "../../api/inc/fmod_errors.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>
然后定义声音系统(FMOD::System)、声音(FMOD::Sound)、声道(FMOD::Channel)、声音出现的位置(FMOD_VECTOR)、一个用于判断的结果(FMOD_RESULT)这几个变量。通常情况下还要定一个版本的参数用于检查当前版本是否过时。例如:
FMOD::System *system;
FMOD::Sound *sound1, *sound2, *sound3;
FMOD::Channel *channel1 = 0, *channel2 = 0, *channel3 = 0;
FMOD_RESULT result;
FMOD_VECTOR listenerpos = { 0.0f, 0.0f, -1.0f * DISTANCEFACTOR };
unsigned int version;//定义版本的变量
定义好变量之后,就开始编写我们需要的声音资源。下面是一般的步骤:
1. 创建FMOD系统。API:FMOD_RESULT System_Create( FMOD::System **
system
);
程序中:result = FMOD::System_Create(&system);
参数为指向系统变量指针的指针;如果创建系统变量成功,就返回FMOD_Ok;没有成功就返回FMOD_RESULT中的任意一项。具体看doc说明。
2.
检查当前版本是否过时。API:FMOD_RESULT System::getVersion( unsigned int *
version
);
程序中:result = system->getVersion(&version);
参数为指向版本变量的指针;如果创建版本变量成功,就返回FMOD_Ok;没有成功就返回FMOD_RESULT中的任意一项。具体看doc说明。
3. 初始化系统和声音设备。他必须在FMOD::System_Creat之后,所有用户代码之前就要执行。API:
FMOD_RESULT System::init( int
maxchannels
,
FMOD_INITFLAGS
flags
,
void *
extradriverdata
);
程序中:result = system->init(100, FMOD_INIT_NORMAL, 0);
Maxchannels:在FMOD中最大的声道数
FMOD_INITFLAGS:
FMOD_OUTPUTTYPE:输出查检
如果初始化成功,就返回FMOD_Ok;没有成功就返回FMOD_RESULT中的任意一项。具体看doc说明。
4. 开始创建自己需要的声音。API:
FMOD_RESULT System::createSound(const char *
name_or_data
,
FMOD_MODE
mode
,
FMOD_CREATESOUNDEXINFO *
exinfo
,
FMOD::Sound **
sound
);
程序中:result = system->createSound("../media/drumloop.wav", FMOD_SOFTWARE | FMOD_3D, 0, &sound1);
name_or_data
:声音资源文件名或者URL
mode
:打开声音的模式。
FMOD_CREATESOUNDEXINFO
:希望用户提供个多信息。一般设为0
FMOD::Sound
:指向声音资源变量指针的指针