1

我希望我的声音文件随后播放三遍。但是,它只播放一次。我猜当[crashSound play]第二次调用时,声音还没有完成播放,所以任何后续调用都会丢失。我该如何解决。即,我怎样才能使相同的文件在完成当前播放后再次播放?

@interface Game()
{
    // code...

    AVAudioPlayer *crashSound;

    // code...
}
@end

@implementation Game

- (id) init 
{ 
    // code...

    NSBundle *bundle = [NSBundle mainBundle];
    NSURL *crashSoundFile = [bundle URLForResource: @"crashSound" withExtension: @"wav"];
    crashSound = [[AVAudioPlayer alloc] initWithContentsOfURL:crashSoundFile error:NULL];

    // code...
}
-(void) play // this is my "main" method that will be called once the playButton is pressed
{
   [crashSound play];[crashSound play];[crashSound play];

}
@end
4

1 回答 1

2

我找到了一个解决方案,所以在这里我一个人回答我自己的问题,以防有人遇到同样的问题。:)

通过crashSound.numberOfLoops = 3;在 crashSound 初始化下添加 crashSound 将播放 3 次。

通过crashSound.numberOfLoops = -1;在 crashSound 初始化下添加, crashSound 将无限期地播放,直到[crashSound stop]调用该方法。

https://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVAudioPlayerClassReference/Reference/Reference.html

于 2012-08-09T19:41:47.143 回答