J'essaye de lire la séquence de fichiers audio en arrière-plan en utilisant AVAudioPlayer. Lorsque l'application n'est pas en arrière-plan, elle fonctionne bien, mais lorsque l'application passe en arrière-plan, elle ne joue pas la deuxième chanson.iphone: lecture de la liste de lecture audio en arrière-plan?
Voici mon code:
-(void)playAudio:(NSString *)path{
NSURL *url = [NSURL fileURLWithPath:path];
NSError *error;
AVAudioPlayer *ap = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
ap.delegate = self;
mainController.audioPlayer = ap;
[ap release];
if (mainController.audioPlayer == nil)
NSLog([error description]);
else{
UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid;
[mainController.audioPlayer prepareToPlay];
if([mainController.audioPlayer play]){
newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];
}
if (newTaskId != UIBackgroundTaskInvalid && bgTaskId != UIBackgroundTaskInvalid)
[[UIApplication sharedApplication] endBackgroundTask: bgTaskId];
bgTaskId = newTaskId;
}
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
NSLog(@"finished now next...");
[self playAudio:[self getNextAudio]];
}
Je débogué l'application et il semble que quand il est sur le point de jouer le second [jeu mainController.audioPlayer] chanson retourne NO, ce qui signifie qu'il ne peut pas jouer. Alors, qu'en pensez-vous?
MISE À JOUR
Après quelques essais, il semble que cela ne continue à jouer correctement que si l'appareil verrouille, mais si l'utilisateur appuie sur le bouton d'accueil et l'application va à l'arrière-plan le problème reste encore
Un peu d'aide pour vous: http://stackoverflow.com/questions/3161635/entering-background-on-ios4-to-play-audio/3161899#3161899 – iwasrobbed
Ouais je regardais à ce fil avant, et une partie de mon code est de là. pour une raison quelconque, AVAudioPlayer refuse de lire une nouvelle piste lorsqu'il est en arrière-plan. – Alex1987
@IWasRobbed - Il semble que vous ayez eu un problème similaire. pouvez-vous poster une partie de votre code? Merci – Alex1987