您的位置:首页 > 其它

音频引擎FMOD学习记录01:入门

2015-01-30 22:46 591 查看
如果说到(开源/专业/商业级)游戏音效处理库,我想大多数人应该知晓FMOD

本系列将关注音效处理库FMOD,本文仅作为一个简单的开始。

可能的话,我会将FMOD与其他开源库如OpenAL/IrrKlang/SDL等进行比较。

FMOD官网戳这里http://www.fmod.org/



我们先下载用于Windows平台的API(准确的说应该是SDK)

下载的是一个安装包,安装完成之后将相应路径(inc和lib)添加到工程中,

可能会是如下这样子

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>D:\FMOD\api\lowlevel\inc;D:\FMOD\api\studio\inc;D:\FMOD\api\fsbank\inc;$(IncludePath)</IncludePath>
<LibraryPath>D:\FMOD\api\lowlevel\lib;D:\FMOD\api\studio\lib;D:\FMOD\api\fsbank\lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup />
<ItemGroup />
</Project>

下面是一个极简的实例

#include <fmod.hpp>
#include <stdio.h>
using namespace FMOD;
#pragma comment(lib,"fmod_vc.lib")

#pragma warning(disable:4996)

int main(void)
{
System* sys = NULL;
Sound* snd1 = NULL;
Sound* snd2 = NULL;
//Channel* ch1 = NULL;
//Channel* ch2 = NULL;
System_Create(&sys);
sys->init(10, FMOD_INIT_NORMAL, NULL);
sys->createStream("F:\\1.mp3", FMOD_DEFAULT, NULL, &snd1);
sys->createStream("F:\\2.mp3", FMOD_DEFAULT, NULL, &snd2);
//snd1->setMusicSpeed(2.0);
sys->playSound(snd1, NULL, false, NULL/*&ch1*/);
sys->playSound(snd2, NULL, false, NULL/*&ch2*/);

printf("Press a key (press \'Q/q\' to quit):");
char key = 0;
while (key!='q'||key!='Q')
{
/*
这个循环是为了让主函数永不结束(除非输入'Q'键)
这样FMOD就有机会继续执行任务(播放声音)
否则主函数会继续执行下一语句,直接退出
实际情况不应该是这样,这里仅仅作为一个示例罢了
实际情况应该是有一个前台任务在执行,在后台播放声音
*/
key = getchar();
}
}

这个示例中,同时播放两个音频1.mp3和2.mp3

代码很简单而且基本上见名知意,因此不做过多解释。

本文原创,博文地址

http://blog.csdn.net/fengyhack/article/details/43318575
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: