我对ogre3d引擎中fmod的Soundmanager (类)(包装器)有一个问题。以下是以防万一的代码:
ISoundManager.h如果有人想要,我会上传它,但我现在不能上传超过2个超链接。
声音管理器.h http://codeviewer.org/view/code:18c9
SoundManager.cpp http://codeviewer.org/view/code:18ca
我有一个简单的代码片段来播放声音:
` 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论坛上问过了,但还没有解决方案。
发布于 2011-03-28 06:40:42
我认为SoundManager需要更新,这是由frameStarted()完成的。这意味着为了让你的声音开始播放,你必须开始使用root->startRendering();运行你的Ogre应用程序。你试过吗?上面的代码要么是不完整的(在这种情况下,你确实有问题),要么你只需要通过启动要渲染的图形来启动SoundManager的更新,从而调用SoundManager的frameStarted。
发布于 2011-03-28 06:56:17
我快速检查了SoundManager代码,发现"PlaySound“函数调用FMOD "playSound”函数。在FMOD中,"playSound“不是阻塞操作,它会在另一个线程中开始播放声音,然后返回。因此,由于您正在立即删除声音管理器,它还没有机会播放任何东西。
https://stackoverflow.com/questions/5449649
复制相似问题