还有预加载音效和不预加载好像没什么差别,是在AppDelegate类预加载的,应该没有问题吧?
游戏用到音效的地方很多,但是频繁的使用会导致程序变慢出现卡顿,关闭音效会好很多。求教:怎么处理这种情况?
有没真机调试过?你可以看下这个http://support.cocos.com/?p=262
我已经修改了WINDOWS引擎的代码,可以调节音量大小
void SimpleAudioEngine::preloadEffect(const char* pszFilePath)
{
int nRet = 0;
do
{
BREAK_IF(! pszFilePath);
nRet = _Hash(pszFilePath);
BREAK_IF(sharedList().end() != sharedList().find(nRet));
sharedList().insert(Effect(nRet, new MciPlayer()));
MciPlayer * pPlayer = sharedList();
pPlayer->Open(_FullPath(pszFilePath).c_str(), nRet);
BREAK_IF(nRet == pPlayer->GetSoundID());
delete pPlayer;
sharedList().erase(nRet);
nRet = 0;
} while (0);
}
我这边也有一样的问题,用SimpleAudioEngine::preloadEffect(const char* pszFilePath) 预加载了,还是卡帧 。现在有解决方案吗?
windows下预加载不明显,而且主要是格式问题,换成.wav的好多了,虽然资源大了点…
现在也碰到这个问题,请问题主最终都用了哪些方法解决啊?
转换成.wav在手机上也会好些不?
cocos2d-x是单线程的,playEffect方法是不是也是在主线程上运行所以导致会卡主界面,
可不可以开启一个线程来播放音效,这样的方法有没有必要,可不可行呢?
不好意思,刚看到。据我尝试得知,卡顿主要是因为加载声音格式不匹配导致的,建议音效最好用wav格式,背景音乐用mp3。