Случайное зацикливание звука в SpriteKit Objective-C

Я пытаюсь воспроизвести случайный музыкальный файл, который зацикливается в SpriteKit. Я добился этого, но есть задержка между циклом с использованием SKAction, подобного этому. Независимо от симулятора или устройства.

self.backgroundMusicArray = [[NSMutableArray alloc] initWithObjects:@"BackgroundMusic1.mp3",@"BackgroundMusic2.mp3",@"BackgroundMusic3.mp3",@"BackgroundMusic4.mp3",@"BackgroundMusic5.mp3",@"BackgroundMusic6.mp3", nil];

int randomNumber = arc4random() % self.backgroundMusicArray.count;

SKAction* play = [SKAction playSoundFileNamed:[self.backgroundMusicArray objectAtIndex:randomNumber] waitForCompletion:YES];

SKAction *loop = [SKAction repeatActionForever:play];

[self runAction:loop];

Я также добился этого с помощью NSURL и AVAudioPlayer без проблемы с задержкой, но я не знаю, как сделать это случайным. Итак, я думаю, мой вопрос: «Как я могу сделать это случайным образом с помощью AVAuidoPlayer». Я новичок в objc, поэтому любая помощь приветствуется.

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                     pathForResource:@"BackGroundMusic1"
                                     ofType:@"mp3"]];

self.backGroundplayer = [[AVAudioPlayer alloc]     initWithContentsOfURL:url error:nil];

self.backGroundplayer.numberOfLoops = -1;

[self.backGroundplayer play];

person Jeff    schedule 17.01.2016    source источник
comment
Возможно ли, что в начале или в конце аудиофайла есть мертвый воздух?   -  person Hasan Edain    schedule 18.01.2016
comment
Я отмечаю, что в этом ответе есть разумный подход: stackoverflow.com/questions/22826675/   -  person Hasan Edain    schedule 18.01.2016
comment
@HasanEdain Я убедился, что нет мертвого воздуха. Похоже, этот вопрос отвечает на него. Спасибо Хасан!   -  person Jeff    schedule 18.01.2016