CocoStudio开发之背景音乐播放两秒就没声音问题-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

CocoStudio开发之背景音乐播放两秒就没声音问题

简介:

问题

    最近在使用COCOSTUDIO 1.3开发时,遇到如题所示的疑惑--在游戏中想念场景切换时出现背景声音播放两声就没有了(不是不播放,只是播放一少部分!)。

答案

    后来跟踪发现原因在于(至少我的情况如此),我在场景的onExit方法中每次都调用了SceneReader::purge()。而这个方法实现代码是:

1
2
3
4
5
6
7
8
9
void SceneReader::purge()
{        
    cocos2d::extension::DictionaryHelper::shareHelper()->purgeDictionaryHelper();
    TriggerMng::getInstance()->destroyInstance();
    _pfnSelector = NULL;
    _pListener = NULL;
    CocosDenshion::SimpleAudioEngine::sharedEngine()->end();
    CC_SAFE_DELETE(_sharedReader);
}

大伙看清上面的第7行了吧,就是它。每次在调用purge方法时停止了系统声音的播放。
找到了原因,就不再调用了吗?情况不一定。现在,我的几个场景使用了UI编辑器设计的,即我没有使用场景编辑器设计,所以我在这几个场景间切换时(场景的onExit方法中)不需要调用SceneReader::purge()(只需要使用GUIReader::purge())。于是,我去掉这一调用就OK了。

但,另外一种可能的现实是,如果是多个使用场景编辑器设计的场景间切换时该怎么操作呢?我的办法是:去掉转场切换动画,继续使用SceneReader::purge()。因为去掉转场切换调用,则想念两个场景的方法调用是:firstScene::onExit()----->secondScene::onEnter()。

补充

我的背景声音没有加入到场景编辑器中,而是使用cocos2d-x方法直接编码方式调用的。
另外,本文只是大致给出了CocoStudio开发过程中背景音乐播放两秒就没声音的问题。但是,我只是在win32下这样操作的,在Android,iOS等环境下没有实际测试过。











本文转自朱先忠老师51CTO博客,原文链接:http://blog.51cto.com/zhuxianzhong/1439658 ,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: