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

如果说到(开源/专业/商业级)游戏音效处理库,我想大多数人应该知晓FMOD

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

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

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

音频引擎FMOD学习记录01:入门_第1张图片


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

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

可能会是如下这样子



  
  
  
    D:\FMOD\api\lowlevel\inc;D:\FMOD\api\studio\inc;D:\FMOD\api\fsbank\inc;$(IncludePath)
    D:\FMOD\api\lowlevel\lib;D:\FMOD\api\studio\lib;D:\FMOD\api\fsbank\lib;$(LibraryPath)
  
  
  

下面是一个极简的实例

#include 
#include 
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

转载于:https://www.cnblogs.com/fengyhack/p/10603557.html

你可能感兴趣的:(音频引擎FMOD学习记录01:入门)