Я пытаюсь воспроизвести случайный музыкальный файл, который зацикливается в 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];