查看: 1517|回复: 5

osgAudio调用shutdown后卡死。。

[复制链接]

该用户从未签到

发表于 2011-11-3 13:25:18 | 显示全部楼层 |阅读模式
我自己写了一个声源管理类,代码如下:

  1. SoundManage::SoundManage(void)
  2. {
  3. osgAudio::SoundManager::instance()->init( 16, true );
  4. osgAudio::SoundManager::instance()->getEnvironment()->setDistanceModel(osgAudio::InverseDistance);
  5. osgAudio::SoundManager::instance()->getEnvironment()->setDopplerFactor(1);
  6. _soundMgrRoot = new osg::Group;
  7. }
  8. SoundManage::~SoundManage(void)
  9. {
  10. if (osg::Referenced::getDeleteHandler())
  11. {
  12.   osg::Referenced::getDeleteHandler()->setNumFramesToRetainObjects(0);
  13.   osg::Referenced::getDeleteHandler()->flushAll();
  14. }
  15. osgAudio::SoundManager::instance()->shutdown();
  16. }
复制代码

为什么会在析构时调用shutdown()后程序卡住不动了,调试发现在释放osg::AudioEnvironment的引用时出现的问题,我看了相关的例子代码没有发现有其他特殊的地方,请问我出现此问题的原因是什么呢?

该用户从未签到

 楼主| 发表于 2011-11-15 16:49:08 | 显示全部楼层
已经找到原因了,是因为fmod库的问题,我换成openAL之后就可以了。

该用户从未签到

发表于 2012-7-5 17:10:39 | 显示全部楼层
xxcc309 发表于 2011-11-15 16:49
已经找到原因了,是因为fmod库的问题,我换成openAL之后就可以了。

不是吧,还要换成openAL库啊,我也碰到这种情况。

该用户从未签到

发表于 2012-7-5 17:11:48 | 显示全部楼层
问题是osgAudio自带的例子用fmod库不会卡死,自己的程序总在最后退出的时候会卡在那

该用户从未签到

发表于 2012-7-6 15:47:31 | 显示全部楼层
xxcc309 发表于 2011-11-15 16:49
已经找到原因了,是因为fmod库的问题,我换成openAL之后就可以了。

不是FMOD的问题,我也遇到过,好像关闭的时候,先手动释放声源还是什么其他东西,就不会卡死了。

该用户从未签到

发表于 2012-7-9 09:31:41 | 显示全部楼层
经过初步测试,貌似加入try就不会假死了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表