我使用SimpleAudioEngine在我的cocos2D应用程序中播放声音。我遇到过这样一种情况:只要一颗子弹被射出,我就会在按下按钮的同时继续发射子弹,并播放声音。有时当我连续点击拍摄按钮时,游戏场景会突然跳动。这是在我整合声音的时候开始的。
这是我在点击按钮时使用的代码:
-(void)rocketButtonTapped:(id)sender
{
[[SimpleAudioEngine sharedEngine] playEffect:@"rocket_fired.wav"];
NSLog(@"Pencil Rocket");
if(int_pencilRocketTagCount>=220)
{
int_pencilRocketTagCount=215;
}
[self performSelector:@selector(shootPencilRocket)];
}请给我一条出路。提前谢谢..
发布于 2012-07-12 17:41:40
在游戏开始之前,执行以下操作:
[[SimpleAudioEngine sharedEngine] preloadEffect:@"rocket_fired.wav"];这会将效果加载到内存中。如果这不能解决问题,那么问题可能出在其他地方。例如,一次播放太多的声音效果,如果火箭发射的声音有几秒钟长,这可能是一个问题。此外,通过NSLog或CCLOG连续记录到调试控制台的速度很慢,很容易导致帧率下降。
这也可能有助于降低音质。对于(短)音效,22甚至11 kHz的采样率就足够了,44 kHz是浪费,因为它分别增加了2倍或4倍的内存使用量。如果效果文件使用立体声通道,请将其转换为单声道以将大小减半。效果使用的内存越少,播放它的硬件就越不紧张。
https://stackoverflow.com/questions/11448935
复制相似问题