聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> FMOD音频引擎

FMOD音频引擎

时间:    下载该word文档
音频引擎
现代游戏已经不能没有声音,所以音频引擎成为游戏引擎中不可缺少的一部分。下面介绍现代音频引擎----FMOD音频引擎是一个非常不错的音频引擎,其使用也比较简单,下面做一些简单介绍:
FMOD中主要有三种对象:SystemSound以及Channel
•System管理与系统相关的工作,比如说从文件系统中读取声音檨本、设定输出的声卡(FMOD可以同时控制多张声卡、设定DSPbuffer大小、或是加载其它的plug-in等。•Sound则是一段声音的样本(sample,已经准备好送往声卡播出。Sound的内部格式可能有三种:无压缩、压缩或串流:
o无压缩:最单纯的格式,直接把所有信息存在内存中,播放时几乎不需要CPU资源,但也很吃内存。适合长度短、会重复播放许多次的音效。
o压缩:如果使用mp3ogg之类的格式储存声音,可以把数据以尚未解压缩的方式先读进内存中,播放时再实时解压缩。这会需要多一点CPU资源,但可以减少记忆体用量,适合中等长度的声音。
o串流:在串流模式下,读取和播放是同时进行的,而内存中只会保留一小部分的样本,因此几乎不吃内存,但缺点是无法重复播放,必需重开档案或重新联机才能再播放一次。很长的背景音乐或是由网路传输的声音。
•Channel代表正在播放声音的实体。对于Channel,你可以设定它的音量、播放的时间点、或是它在3D空间中的位置与速度。一个Channel只能播放一个Sound,但同一个Sound以让由不同的Channel共享并同时播放。
FMOD在使用上还满简单的,复杂的解压缩、混音、硬件控制等全部都被包装起来,因此游戏制作人员不需要再花额外的功夫处理。唯一不满的地方就是它的C++interface实在设计不良,完全没有用到C++威力(OOP都沾不上边这也是为什么我都使用Cinterface的原因:两者并没有明显的不同。
一.基本准备
FMOD音频引擎作为个人非商业用途它是免费的,你可以从它们的主站上下载API等文件.之后,你需要添加头文件和库文件,如下(C/C++):

fmod.h
fmodvc.libfmod.dll
用于MicrosoftVisualC++,之后,只要添加fmod.h头文件后就可以使用了.二.开始使用1.初始化
开始播放声音前,需要进行初始化,很简单:FSOUND_Init(44100,32,0;
第一个参数为音乐输出的rate,单位为赫兹,在这里我们设置为44100.第二个参数为设置最大的通道数量
第三个参数,可以指定一些标识,这里暂时置它为02.基本常识
FMOD到底支持什么样的音乐格式呢?歌曲,采样或是文件流(song,sampleandstream?FMOD将它细分在两个API.他们分别是FSOUNDFMUSIC,所有的MUSIC:mods3mxmitmidrmisgtfsb都通过FMUSIC这个API来播放。FSOUNDAPI是提供给压缩格式使用的,文件一般如:wav,mp3,ogg,raw等这些格式,你都可以通过别的软件进行互相转换。如果你要播放的音乐是像炮弹发射一样的短小的声音,那么你可以将这些声音转换SampleSamples将在播放前先解压到内存,而且可以多次播放;如果你要播放的是像背景音乐一样的较长的音乐,你可以得到这个音乐并转化为流,这将导致使用一些CPU和内存,因为文件从磁盘读取然后转成流需要一个过程。同时需要注意一点,在同一时间不能多次播FMUSIC不过小文件一般通过采样方式,它可以多次播放但占用内存.大文件通过流方式,减少内存消耗.
3.播放音乐
首先定义一个FMUSIC_MODULE类型变量来作为文件句柄.然后就可以通过FMUSICAPI来实现,如:
FMUSIC_MODULE*handle;

装入文件:
handle=FMUSIC_LoadSong("data/canyon.mid";FMUSIC_PlaySong(handle;
音量控制:FMUSIC_SetMasterVolume(handle,255;后面的参数在0~255之间,值越大声音越大.
暂停播放:FMUSIC_SetPaused(handle,true;重开始:FMUSIC_SetPaused(handle,false;
循环播放:FMUSIC_SetLooping(handle,true;//暂时有点问题,待定
FSOUND_SetLoopMode(0,FSOUND_LOOP_NORMAL;
停止播放:FMUSIC_StopSong(handle;释放音频内存:FMUSIC_FreeSong(handle;举例:
example.cpp中增加#include"Fmod.h"
#pragmacomment(lib,"fmodvc.lib"FMUSIC_MODULE*sound_9;
voidInitFmod(void{
if(FSOUND_Init(44100,32,0{
sound_9=FMUSIC_LoadSong("data/canyon.mid";}}
voidFreeFmod(void{
if(sound_9!=NULL
FMUSIC_FreeSong(sound_9;}

Example::Init(中增加
InitFmod(;
FMUSIC_SetMasterVolume(sound_9,100;FMUSIC_PlaySong(sound_9;


4.播放声音4.1采样(Sample方式
先定义FSOUND_SAMPLE类型变量,然后就可以使用FSOUND系列函数来实现,如:装如文件:
handle=FSOUND_Sample_Load(0,"YourFileName",0,0,0;//除文件名外的参数用于多采样或其它等
FSOUND_PlaySound(0,handle;
设置音量:FSOUND_SetVolume(intchannel,,255;暂听:FSOUND_SetPaused(handle,true;继续开始:FSOUND_SetPaused(handle,false;停止:FSOUND_StopSound(handle;释放:FSOUND_Sample_Free(handle;4.2(stream方式
先定义一个FSOUND_STREAM类型变量,然后:装入文件:
FSOUND_STREAM*F_APIFSOUND_Stream_Open(constchar*name_or_data,unsignedintmode,intoffset,intlength;
handle=FSOUND_Stream_OpenFile("YourFileName",FSOUND_2D,0;

FSOUND_Stream_Play(0,handle;
提示:3.7版本之前的方式是不一样的.停止:FSOUND_Stream_Stop(handle;释放:FSOUND_Stream_Close(handle;5.关闭
FSOUND_Close(;

免费下载 Word文档免费下载: FMOD音频引擎

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服