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

问题

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

答案

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

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等环境下没有实际测试过。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值