首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SimpleAudioEngine需要时间来播放声音

SimpleAudioEngine需要时间来播放声音
EN

Stack Overflow用户
提问于 2012-07-12 17:34:10
回答 1查看 1K关注 0票数 0

我使用SimpleAudioEngine在我的cocos2D应用程序中播放声音。我遇到过这样一种情况:只要一颗子弹被射出,我就会在按下按钮的同时继续发射子弹,并播放声音。有时当我连续点击拍摄按钮时,游戏场景会突然跳动。这是在我整合声音的时候开始的。

这是我在点击按钮时使用的代码:

代码语言:javascript
复制
-(void)rocketButtonTapped:(id)sender
{
  [[SimpleAudioEngine sharedEngine] playEffect:@"rocket_fired.wav"];
  NSLog(@"Pencil Rocket");
  if(int_pencilRocketTagCount>=220)
  {
    int_pencilRocketTagCount=215;
  }
  [self performSelector:@selector(shootPencilRocket)];  
}

请给我一条出路。提前谢谢..

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-12 17:41:40

在游戏开始之前,执行以下操作:

代码语言:javascript
复制
[[SimpleAudioEngine sharedEngine] preloadEffect:@"rocket_fired.wav"];

这会将效果加载到内存中。如果这不能解决问题,那么问题可能出在其他地方。例如,一次播放太多的声音效果,如果火箭发射的声音有几秒钟长,这可能是一个问题。此外,通过NSLog或CCLOG连续记录到调试控制台的速度很慢,很容易导致帧率下降。

这也可能有助于降低音质。对于(短)音效,22甚至11 kHz的采样率就足够了,44 kHz是浪费,因为它分别增加了2倍或4倍的内存使用量。如果效果文件使用立体声通道,请将其转换为单声道以将大小减半。效果使用的内存越少,播放它的硬件就越不紧张。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11448935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档