在Xcode中重复声音的问题

时间:2012-09-13 18:39:30

标签: iphone objective-c c xcode audio

当一帧撞到另一帧时,它会播放声音,所以我在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 ;
    }

声音有时连续快速播放,有时声音不播放是否有更好的方法可以编写此代码?

1 个答案:

答案 0 :(得分:0)

在致电prepareToPlay之前,请调用AVAudioPlayer个实例上的play方法。它预加载音频播放器的缓冲区。

此外,如果可以的话,让你的播放器从内存中播放,因为它只是一个非常短的声音。请参阅initWithData:error课程文档中的AVAudioPlayer方法说明。