Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用AVAudioPlayer框架播放完相同的声音后,如何再次播放?_Objective C_Ios_Avaudioplayer - Fatal编程技术网

Objective c 使用AVAudioPlayer框架播放完相同的声音后,如何再次播放?

Objective c 使用AVAudioPlayer框架播放完相同的声音后,如何再次播放?,objective-c,ios,avaudioplayer,Objective C,Ios,Avaudioplayer,我希望我的声音文件在随后播放三次。但是,它只播放一次。 我猜当第二次调用[crashSound play]时,声音还没有播放完,因此任何后续调用都会丢失。我怎样才能解决这个问题。i、 e.如何使同一文件在完成当前播放后再次播放 @interface Game() { // code... AVAudioPlayer *crashSound; // code... } @end @implementation Game - (id) init { //

我希望我的声音文件在随后播放三次。但是,它只播放一次。 我猜当第二次调用
[crashSound play]
时,声音还没有播放完,因此任何后续调用都会丢失。我怎样才能解决这个问题。i、 e.如何使同一文件在完成当前播放后再次播放

@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

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

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

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