vs2008 fmod 配置与使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

游戏开发-声音篇(最简单的FMOD应用)
最近两天学校断网,呵呵,(杯具),自己把以前的文档拿出来翻了翻,FMOD是一
个游戏声音引擎,其实自己早就下载安装了FMOD,只是自己一直没用(说真的感谢断网,呵呵),更别提怎么编码了,迟到今天才写了一个FMOD程序,感觉没那么难(当然只是,很简单的运用FMOD加载一首歌曲而已),没别的功能,更别提3D效果了,好了看看我搭建的开发平台吧!
我的开发平台一直是visual studio 2008 + FMOD,其实FMOD只需下载
SDK 开发包安装好就可以了,有关Fmod的介绍请浏览官网
其实玩过的魔兽世界听说声音用的是Fmod引擎。

下载安装好后,里面已经有库文件
打开api 文件夹
在VS开发平台选择下,我选择的是fmodex.dll 此时还需要lib文件夹下的
fmodex_vc.lib 静态库文件有了这些文件之后,就可以进行到最为激动地时刻--编码。

编码前需要把fmodex.dll,fmodex_vc.lib添加到工程目录中并设置附加依赖项
fmodex_vc.lib #pragma comment (lib, "fmodex_vc.lib")
拷贝E:\FMOD Programmers API Win32\api\inc下的头文件到自己的工程目录下,并全部添加到自己的工程中,编写代码:
Code:
1#include "fmod.hpp"
2#include "fmod_errors.h"
3#include <stdio.h>
4#include <windows.h>
5#include <conio.h>
6
7void ERRCHECK(FMOD_RESULT result)
8{
9if (result != FMOD_OK)
10{
11printf("FMOD error! (%d) %s\n", result, FMOD_ErrorString(result));
12exit(-1);
13}
14}
15
16int main()
17{
18FMOD_RESULT result;
19FMOD::System * system;
20
21// 创建Fmod主系统
22result = FMOD::System_Create(&system);
23if (result != FMOD_OK)
24{
25printf("FMOD error! (%d) %s\n", result, FMOD_ErrorString(result));
26exit(-1);
27}
28// 初始化Fmod系统init方法
29result = system->init(1,FMOD_INIT_NORMAL,0);
30if(result != FMOD_OK)
31{
32printf("FMOD error! (%d) %s\n", result, FMOD_ErrorString(result));
33exit(-1);
34}
35
36// 检测版本号,支持吗?
37unsigned int version;
38result = system->getVersion(&version);
39ERRCHECK(result);
40
41if (version < FMOD_VERSION)
42{
43printf("Error! You are using an old version of FMOD %08x. This program requires %08x\n", version, FMOD_VERSION);
44return0;
45}
46// 加载媒体文件并播放
47FMOD::Sound *sound;
48result = system->createStream("media/许嵩 - 城府.mp3",FMOD_3D,0,&sound);
49// 其他格式:FMOD_NONBLOCKING
50ERRCHECK(result);
51
52FMOD::Channel *channel;// 定义Channel对象
53// 计算媒体文件的长度
54unsigned int lenms;
55
56result = sound->getLength(&lenms, FMOD_TIMEUNIT_MS);
57ERRCHECK(result);
58
59printf("Total CD length %02d:%02d\n\n", lenms / 1000 / 60, lenms / 1000 % 60, lenms / 10 % 100);
60
61
62result = system->playSound(FMOD_CHANNEL_FREE,sound,false,&channel);
63Sleep(lenms*60*1000);//一定要sleep一下,要不然程序马上返回了,听不到声音,呵呵64ERRCHECK(result);
65
66
67return 0;
68}
最后工程目录为:
其实查看Fmod Ex 文档,documentation里面的tutorial写的已经很详细。

本人只
是按部就班而已。

谨以此文献给那些入门级的code man。

相关文档
最新文档