切换场景的时候,有没有办法不中断背景音乐

我知道切换场景的时候,前一场景的背景音乐会停止释放掉,进入下一场景后再让音乐重头播放(如果需要的话),
但是现在我想在切换场景的时候,让背景音乐不中断,不知道有没有办法可以做到?
或者可否分享下你们是怎么做的?

非常感谢!

不会吧,只要你不在下一场景更改背景音乐就不会变咯

会的啊,你第二个场景也播放同一个音乐的话,这音乐是从头开始播放的。你可以试试呀

你加一个判断,如果需要播放的背景音乐和正在播放的是同一个就不重新播放

做一个管理类,把音乐的判断标志放在里面,通过全局管理进行处理就行了。要不专门做一个音乐类处理

我怎么感觉没看懂啊。。
我现在是这样做的,
在scene1里面的onEnter里面
SimpleAudioEngine::sharedEngine()->playBackgroundMusic(“bg.mp3”);

然后切换到下一场景scene2,也是在onEnter里面:
SimpleAudioEngine::sharedEngine()->playBackgroundMusic(“bg.mp3”);

然后现象就是:
1,假如scene2里面不再playBackgroundMusic,那么背景音乐就没了。如果再playBackgroundMusic的话,那么背景音乐是从头开始的
2,切换场景(replaceScene)的过程中音乐会中断,比如我replaceScene要1秒种,那么这里音乐就中断了1秒

所以我这里想的是怎么解决上面这两个问题,切换场景的过程背景音乐还在,而且切换后音乐是连续的,不是从头开始的。

我看很多游戏都做到这点了,不知道是怎么实现的?还是说这些游戏只有一个场景?那就不存在切换场景的问题了,但是这样游戏跑了一段时间不会内存很大吗?

谢谢大家!

我怎么感觉没看懂啊。。
我现在是这样做的,
在scene1里面的onEnter里面
SimpleAudioEngine::sharedEngine()->playBackgroundMusic(“bg.mp3”);

然后切换到下一场景scene2,也是在onEnter里面:
SimpleAudioEngine::sharedEngine()->playBackgroundMusic(“bg.mp3”);

然后现象就是:
1,假如scene2里面不再playBackgroundMusic,那么背景音乐就没了。如果再playBackgroundMusic的话,那么背景音乐是从头开始的
2,切换场景(replaceScene)的过程中音乐会中断,比如我replaceScene要1秒种,那么这里音乐就中断了1秒

所以我这里想的是怎么解决上面这两个问题,切换场景的过程背景音乐还在,而且切换后音乐是连续的,不是从头开始的。

我看很多游戏都做到这点了,不知道是怎么实现的?还是说这些游戏只有一个场景?那就不存在切换场景的问题了,但是这样游戏跑了一段时间不会内存很大吗?

谢谢大家!

1.如果你的背景音乐是循环播放的,在切换场景时只要你没有自己停止或者切换音乐,是不会中断的
2.你可以记录下当前播放的音乐的名称,在下次播放背景音乐前先判断下 是否一样,如果一样就不重新播放

非常感谢!
我想我找到问题了:
我用了cocostudio,场景退出时都调用了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);
}

所以你们说的都是对的,切换场景时音乐本不会中断的。。。