首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ogre3d的Fmod包装器(soundManager)的问题

Ogre3d的Fmod包装器(soundManager)的问题
EN

Stack Overflow用户
提问于 2011-03-27 21:55:29
回答 2查看 695关注 0票数 2

我对ogre3d引擎中fmod的Soundmanager (类)(包装器)有一个问题。以下是以防万一的代码:

ISoundManager.h如果有人想要,我会上传它,但我现在不能上传超过2个超链接。

声音管理器.h http://codeviewer.org/view/code:18c9

SoundManager.cpp http://codeviewer.org/view/code:18ca

我有一个简单的代码片段来播放声音:

代码语言:javascript
复制
`   SoundManager *soundManagerPtr = new SoundManager;

    soundManagerPtr->Initialize();

    int mySound1 = soundManagerPtr->CreateStream(Ogre::String("boing.wav") );
    int channel1 = 0;

    soundManagerPtr->PlaySound(mySound1, headNode, &channel1);

    delete soundManagerPtr;`

一切正常,声音正在加载,但是PlaySound()函数不会抛出任何错误,也不会播放声音。我在ogre3d论坛上问过了,但还没有解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-28 06:40:42

我认为SoundManager需要更新,这是由frameStarted()完成的。这意味着为了让你的声音开始播放,你必须开始使用root->startRendering();运行你的Ogre应用程序。你试过吗?上面的代码要么是不完整的(在这种情况下,你确实有问题),要么你只需要通过启动要渲染的图形来启动SoundManager的更新,从而调用SoundManager的frameStarted。

票数 0
EN

Stack Overflow用户

发布于 2011-03-28 06:56:17

我快速检查了SoundManager代码,发现"PlaySound“函数调用FMOD "playSound”函数。在FMOD中,"playSound“不是阻塞操作,它会在另一个线程中开始播放声音,然后返回。因此,由于您正在立即删除声音管理器,它还没有机会播放任何东西。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5449649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档