Ogre中使用FMOD作为声音引擎(一)
来源:互联网 发布:广电网络十大股东 编辑:程序博客网 时间:2024/04/27 17:25
准备工作:
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文件,一般会有相应的出错提示。
- Ogre中使用FMOD作为声音引擎(一)
- Vision引擎中Fmod 声音图形介绍
- Vision引擎中Fmod声音碰撞介绍
- fmod:1.通过SoundManager在OGRE中使用fmod
- fmod:2.SoundManager的解析和在OGRE中使用fmod
- FMOD.一款易用的声音引擎
- FMOD音频引擎简单使用
- FMOD音频引擎简单使用
- FMOD音频引擎简单使用
- 在Flash Builder 4 中使用Pixel Bender作为数值运算引擎(一)(转)
- Vision引擎中FMOD - 回响介绍
- Vision引擎中FMOD - 回响介绍
- Vision引擎中Fmod - 事件介绍
- FMOD音频引擎的简单使用
- OGRE 引擎官方基础教程 (一)
- 基于cocos2d-x的Android游戏中使用fmod音频引擎
- FMOD在Android系统中播放声音抖动问题
- Ogre中使用Opencv加载视频作为纹理贴图
- GUI对象大小随窗口变化 units
- Windows 下 SVN 服务器配置
- 8.camera and viewport
- C#连接数据库 mdf法
- 分页的实现
- Ogre中使用FMOD作为声音引擎(一)
- php ajax 无刷新改变文本框的字并设置时间关闭
- Network is unreachable
- C# 基础总结--类型与继承
- Jmagick的一个错误:C:\WINDOWS\system32\jmagick.dll: Can't find dependent libraries
- 趣味程序题
- 使用SQL字符串反转函数REVERSE巧妙实现lastindexof功能
- 外部用户访问sharepoint网站不断弹出输入用户名和密码的对话框
- 线程终止方式pthread_cleanup_push