当一帧撞到另一帧时,它会播放声音,所以我在do loader中使用此代码,以便加载声音
我使用框架
#import <AVFoundation/AVFoundation.h>
- (void)viewDidLoad
NSString *path1 = [[NSBundle mainBundle] pathForResource:@"ballbounce" ofType:@"mp3"];
theaudio1 = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path1] error: NULL];
然后用它来播放声音
[audio1 play];
但有时候声音没有播放,声音片段只有0.7秒长,只是发出一声简单的声音。
像
enemy.center = CGPointMake(enemy.center.x+pos.x,enemy.center.y+pos.y);
if (enemy.center.x > 308 || enemy.center.x < 10)
{
[theaudio1 play];
pos.x = -pos.x;
}
if (enemy.center.y > 400 || enemy.center.y < 100)
{
[theaudio1 play];
pos.y = -pos.y ;
}
声音有时连续快速播放,有时声音不播放是否有更好的方法可以编写此代码?
答案 0 :(得分:0)
在致电prepareToPlay
之前,请调用AVAudioPlayer
个实例上的play
方法。它预加载音频播放器的缓冲区。
此外,如果可以的话,让你的播放器从内存中播放,因为它只是一个非常短的声音。请参阅initWithData:error
课程文档中的AVAudioPlayer
方法说明。