FMOD(1)

来源:互联网 发布:mindmanager mac 过期 编辑:程序博客网 时间:2024/04/27 01:04

#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系统。APIFMOD_RESULT System_Create( FMOD::System ** system);

程序中:result = FMOD::System_Create(&system);

参数为指向系统变量指针的指针;如果创建系统变量成功,就返回FMOD_Ok;没有成功就返回FMOD_RESULT中的任意一项。具体看doc说明。

2.      检查当前版本是否过时。APIFMOD_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:指向声音资源变量指针的指针

 
原创粉丝点击