Ogre中使用FMOD作为声音引擎(一)
2011-11-16 20:06
351 查看
准备工作:
1.写一个能正确运行的OGRE程序,越简单越好。我采用的是BaseApplication。
2.下载FMOD声音引擎并安装,下载版本为FMOD Ex Programmers API,当前稳定版为4.38.01。
3.下载官网上讲OGRE和FMOD相结合的SoundManager例子。
4.给程序添加相应的文件,在FMOD安装路径下,如D:\Program Files\FMOD SoundSystem\FMOD Programmers API Windows\api,inc文件夹下有所需要的fmod.h,fmod.hpp,fmod_codec.h,fmod_dsp.h,fmod_erros.h,fmod_memoryinfo.h,fmod_output.h。还有例子的文件SoundManager.h和SoundManager.cpp。可以将这些文件放到一个指定的文件夹中,如FMOD,然后包含该文件夹路径。
5. 在项目lib文件夹中放入fmodex_vc.lib,在FMOD安装路径下的lib文件夹中。添加完之后在项目属性→配置→链接器→输入一栏,添加该文件。
6. 添加相应的链接库fmodex.dll和fmodexL.dll到Ogre目标文件生成文件夹release。
7. 打开resource.cfg文件,添加声音文件所在文件夹,如FileSystem=../media/Sound。
8. 由于SoundManager这个例子写的比较早,函数有更新,如
本文参考的是归海攸的新浪博客。
2011-12-18 Update:
在第7步修改资源文件夹的时候,要注意资源组的名称,默认的是General。所以要将FileSystem=../media/Sound添加到[General]下,添加到[Popular]名下也会出现找不到文件的错误。
如果还是没有声音,请查看Ogre.log文件,一般会有相应的出错提示。
1.写一个能正确运行的OGRE程序,越简单越好。我采用的是BaseApplication。
2.下载FMOD声音引擎并安装,下载版本为FMOD Ex Programmers API,当前稳定版为4.38.01。
3.下载官网上讲OGRE和FMOD相结合的SoundManager例子。
4.给程序添加相应的文件,在FMOD安装路径下,如D:\Program Files\FMOD SoundSystem\FMOD Programmers API Windows\api,inc文件夹下有所需要的fmod.h,fmod.hpp,fmod_codec.h,fmod_dsp.h,fmod_erros.h,fmod_memoryinfo.h,fmod_output.h。还有例子的文件SoundManager.h和SoundManager.cpp。可以将这些文件放到一个指定的文件夹中,如FMOD,然后包含该文件夹路径。
5. 在项目lib文件夹中放入fmodex_vc.lib,在FMOD安装路径下的lib文件夹中。添加完之后在项目属性→配置→链接器→输入一栏,添加该文件。
6. 添加相应的链接库fmodex.dll和fmodexL.dll到Ogre目标文件生成文件夹release。
7. 打开resource.cfg文件,添加声音文件所在文件夹,如FileSystem=../media/Sound。
8. 由于SoundManager这个例子写的比较早,函数有更新,如
result = system->setFileSystem(&fmodFileOpenCallback, &fmodFileCloseCallback, &fmodFileReadCallback, &fmodFileSeekCallback, 2048);旧的版本接收5个参数,编译提示错误,可按照fmod.hpp中新的函数定义将其修改为:
result = system->setFileSystem(&fmodFileOpenCallback, &fmodFileCloseCallback, &fmodFileReadCallback, &fmodFileSeekCallback, &fmodFileAsyncReadCallback, &fmodFileAsyncCancelCallback, 2048);并参照fmod.h文件中函数声明,在SoundManager.cpp添加函数定义,如下所示:
FMOD_RESULT SoundManager::fmodFileAsyncReadCallback(FMOD_ASYNCREADINFO *info, void *userdata) { return FMOD_OK; } FMOD_RESULT SoundManager::fmodFileAsyncCancelCallback(void *handle, void *userdata) { return FMOD_OK; }例子中节点获取位置函数为
node->getWorldPosition();而OGRE 1.7版中函数定义为
node->getPosition();以上就是所需要的准备工作,编译时应该不会再出现错误,下一篇文章将介绍一个使用的例子。
本文参考的是归海攸的新浪博客。
2011-12-18 Update:
在第7步修改资源文件夹的时候,要注意资源组的名称,默认的是General。所以要将FileSystem=../media/Sound添加到[General]下,添加到[Popular]名下也会出现找不到文件的错误。
如果还是没有声音,请查看Ogre.log文件,一般会有相应的出错提示。
相关文章推荐
- 物理引擎Havok的一个简单实例(使用Ogre渲染)
- 从模板引擎到模板引擎-使用aspx页面作为模板引擎的一种实现
- fmod:1.通过SoundManager在OGRE中使用fmod
- FMOD音频引擎简单使用
- 【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)
- Ogre源代码编译 - 在Windows7/8中使用Visual Studio2012编译Ogre引擎
- 在Ogre中使用Newton物理引擎SDK
- 使用VC6编译和使用Ogre引擎(完全版)
- FMOD音频引擎简单使用
- 物理引擎Havok的一个简单实例(使用Ogre渲染)
- 基于cocos2d-x的Android游戏中使用fmod音频引擎
- fmod:2.SoundManager的解析和在OGRE中使用fmod
- FMOD音频引擎简单使用
- 转: 在Ogre中使用Havok物理引擎(源码)
- FMOD音频引擎简单使用
- Google AppEngine 使用 Jetty 作为 Java 应用引擎
- OGRE1.7图形引擎使用1:编译ogre
- 在Flash Builder 4 中使用Pixel Bender作为数值运算引擎(一)(转)
- 使用星际译王查词(安装字典和声音引擎)
- 使用VC6编译和使用Ogre引擎