|
经常看到好多人问怎么在游戏里播放MP3,怎么播放MIDI等很多问题
当然使用DirectShow,DirectMusic可以解决问题
但是完整学习DirectShow和DirectMusic需要大量的时间和精力
有时候仅仅为了在一个DEMO里使用MIDI而花费大量的时间在学习DirectMusic不是很花算的.而学习DirectShow播放mp3则似乎更加麻烦
个人认为使用FMOD音频引擎是个很不错的选择 [em20],
原因有以下几点:
1. 避免了游戏中复杂的DirectXAPI调用
2. FMOD的功能十分之强大,支持包括PSP在内的几乎所有游戏平台
3. 简单易用,,支持世面上几乎所有常见音频格式
这里我用一个最简短的程序来说明FMOD的使用方法
- //////////////////////////////////////////////////////////////////////
- #include <fmod.hpp>
- #include <fmod_errors.h>
- #include <windows.h>
- #include <stdio.h>
- #include <conio.h> //包含头文件
- void main()
- {
- FMOD::System *system; //最主要的东东system
- FMOD::Sound *sound; //声音~~可以指想mp3等....
- FMOD::Channel *channel = 0; //这个词应该怎么解释~~~哈哈
- FMOD::System_Create(&system); //创建system
-
- system->init(32, FMOD_INIT_NORMAL, 0); //初始化
-
- system->createStream("1.mp3", FMOD_HARDWARE, 0, &sound); //创建声音
- sound->setMode(FMOD_LOOP_OFF); //关闭循环
-
- system->playSound(FMOD_CHANNEL_FREE, sound, false, &channel);
- channel->setVolume(0.2); //播放声音
-
- Sleep(10);
- if(getchar()==27)
- {
- sound->release();//
-
- system->close();//
-
- system->release();//释放资源
-
- }
- }
- //////////////////////////////////////////////////////////////////
复制代码
这是一个最简单的FMOD小程序了,简单明了
从上面这段代码很容易看出,system是整个FMOD的核心部件
它必须第一个被创建,最后一个被销毁
它可以创建sound,播放sound,,,,执行许多操作~~~~
Sound则是指向声音文件的一个指针
上面的代码中,我使用CreateStream来创建sound,,当然也可以使用CreateSound
区别是后者把mp3文件一口气加载,前者是流的方式(我口齿不清~~说不清楚,5555)
以上,FMOD的使用如此简单,不是吗?
当然如果要执行上面那个最简单的代码,还需要要在官方网站/下个SDK包,,,,大概2MB多点,,,,(我没地方传),然后在编译器里包含include,lib,,,这些就不说明了
总之,FMOD功能十分的强大~~~~~~
更多有趣功能以后继续说明~
|
|