FMOD音频引擎.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FMOD音频引擎

音频引擎现代游戏已经不能没有声音,所以音频引擎成为游戏引擎中不可缺少的一部分。下面介绍现代音频引擎----FMOD音频引擎是一个非常不错的音频引擎,其使用也比较简单,下面做一些简单介绍:在FMOD 中主要有三种对象:System、Sound 以及Channel。 ? System 管理与系统相关的工作,比如说从文件系统中读取声音檨本、设定输出的声卡(FMOD 可以同时控制多张声卡)、设定DSP buffer 大小、或是加载其它的plug-in 等。 ? Sound 则是一段声音的样本(sample),已经准备好送往声卡播出。 Sound 的内部格式可能有三种:无压缩、压缩或串流: o 无压缩 :最单纯的格式,直接把所有信息存在内存中,播放时几乎不需要CPU 资源,但也很吃内存。适合长度短、会重复播放许多次的音效。 o 压缩 :如果使用mp3 或ogg 之类的格式储存声音,可以把数据以尚未解压缩的方式先读进内存中,播放时再实时解压缩。这会需要多一点CPU资源,但可以减少记忆体用量,适合中等长度的声音。 o 串流 :在串流模式下,读取和播放是同时进行的,而内存中只会保留一小部分的样本,因此几乎不吃内存,但缺点是无法重复播放,必需重开档案或重新联机才能再播放一次。合很长的背景音乐或是由网路传输的声音。 ? Channel 代表正在播放声音的实体。对于Channel,你可以设定它的音量、播放的时间点、或是它在3D空间中的位置与速度。一个Channel只能播放一个Sound,但同一个Sound可以让由不同的Channel共享并同时播放。 FMOD 在使用上还满简单的,复杂的解压缩、混音、硬件控制等全部都被包装起来,因此游戏制作人员不需要再花额外的功夫处理。唯一不满的地方就是它的C++ interface实在设计不良,完全没有用到C++威力(连OOP都沾不上边),这也是为什么我都使用C interface的原因:两者并没有明显的不同。 一.基本准备 FMOD音频引擎作为个人非商业用途它是免费的,你可以从它们的主站上下载API等文件.之后,你需要添加头文件和库文件,如下(C/C++): ? fmod.h fmodvc.lib ? fmod.dll 用于 Microsoft Visual C++,之后,只要添加fmod.h头文件后就可以使用了. 二.开始使用 1.初始化 开始播放声音前,需要进行初始化,很简单: FSOUND_Init (44100, 32, 0); 第一个参数为音乐输出的rate,单位为赫兹,在这里我们设置为44100. 第二个参数为设置最大的通道数量 第三个参数,可以指定一些标识,这里暂时置它为0. 2.基本常识 FMOD到底支持什么样的音乐格式呢?歌曲,采样或是文件流(song,sample and stream)? FMOD将它细分在两个API中.他们分别是FSOUND和FMUSIC,所有的MUSIC如:mod、s3m、xm、it、mid、rmi、sgt、fsb 都通过FMUSIC 这个API来播放。FSOUND API是提供给压缩格式使用的,文件一般如:wav,mp3,ogg,raw等这些格式,你都可以通过别的软件进行互相转换。如果你要播放的音乐是像炮弹发射一样的短小的声音,那么你可以将这些声音转换成Sample,Samples将在播放前先解压到内存,而且可以多次播放;如果你要播放的是像背景音乐一样的较长的音乐,你可以得到这个音乐并转化为流,这将导致使用一些CPU和内存,因为文件从磁盘读取然后转成流需要一个过程。同时需要注意一点,在同一时间不能多次播放FMUSIC。不过小文件一般通过采样方式,它可以多次播放但占用内存.大文件通过流方式,减少内存消耗. 3.播放音乐 首先定义一个FMUSIC_MODULE类型变量来作为文件句柄.然后就可以通过FMUSIC API来实现,如: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_Fre

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档