Реализация делегата audioPlayerDidFinishPlaying от AVAudioPlayerDelegate и запуск оттуда второй песни ...
NSMutableArray *array ;
int index = 0;
- (void)viewDidLoad
{
[super viewDidLoad];
NSMutableArray *array = [NSMutableArray array];
[array insertObject: [[NSBundle mainBundle] pathForResource:@"Master of Puppets" ofType:@"mp3"] atIndex:0];
[array insertObject: [[NSBundle mainBundle] pathForResource:@"music" ofType:@"mp3"] atIndex:1];
[array insertObject: [[NSBundle mainBundle] pathForResource:@"Start" ofType:@"caf"] atIndex:2];
[array insertObject: [[NSBundle mainBundle] pathForResource:@"thx" ofType:@"m4v"] atIndex:3];
[array insertObject: [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"aif"] atIndex:4];
theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[array objectAtIndex:index]] error:NULL];
theAudio.delegate = self;
[theAudio prepareToPlay];
[theAudio play];
index++;
}
Теперь проигрыватель воспроизводит первую песню .. И указанный ниже делегат сработает после того, как песня будет завершена ... затем воспроизведите вторую песню.
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
[theAudio release];
if(index > 4)//your array highest index
return;
theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[array objectAtIndex:index]] error:NULL];
theAudio.delegate = self;
[theAudio prepareToPlay];
[theAudio play];
index++;
}
Эта логика должна работать .. Я не могу найти какую-либо функцию в AVAudioPlayer для изменения песни после инициализации. Так что нам нужно создать новый объект .. :(