Вам необходимо использовать протоколы AVAudioPlayerDelegate
. Во-первых включить его в интерфейсе:
@interface MyAppViewController : UIViewController <AVAudioPlayerDelegate> {
AVAudioPlayer *yourPlayer;
}
@property (nonatomic, retain) AVAudioPlayer *yourPlayer;
Затем в реализации:
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
//This method is called once the file has finished playing
//Insert code here to play the next file
}
Не забудьте установить delegate
от yourPlayer
к self
в методе viewDidLoad
(или где бы вы решили поставить он):
- (void)viewDidLoad {
[super viewDidLoad]
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
if ([[UIApplication sharedApplication] respondsToSelector:@selector(beginReceivingRemoteControlEvents)]){
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
self.yourPlayer = [[AVAudioPlayer alloc] init];
self.yourPlayer.delegate = self;
}
Вам также необходимо изменить необходимые режимы фона в вашем info.plist в App воспроизводит звук
Не забудьте отменить события пульта дистанционного управления (viewDidUnload
):
[[UIApplication sharedApplication] endReceivingRemoteControlEvents]
ли вы имеете в виду, как только текущий трек закончится? – sooper
Да, я хранил URL-адреса аудиофайлов в основных объектах данных –