我正在使用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)];
}
请建议我出路...提前致谢..
答案 0 :(得分:2)
在游戏开始之前,请执行以下操作:
[[SimpleAudioEngine sharedEngine] preloadEffect:@"rocket_fired.wav"];
这会将效果加载到内存中。 如果这不能解决问题,那么问题可能出在其他地方。例如,如果火箭发射声音长达几秒钟,那么同时播放的声音效果太多,这可能是一个问题。此外,通过NSLog或CCLOG连续记录到调试控制台的速度很慢,很容易导致帧速率下降。
它也可能有助于降低音质。对于(短)声音效果,22或甚至11 kHz的采样率就足够了,44 kHz是浪费的,因为它分别增加了2到4次内存使用量。如果效果文件使用立体声通道,请将其转换为单声道以将大小减小一半。效果使用的内存越少,硬件播放的负担就越小。