J'ai commencé à faire des clins d'œil à mon cerveau - je joue des vidéos avec MoviePlayerViewController, mais quand j'essaie de jouer avec une vidéo aléatoire via l'accéléromètre, je tombe en panne quand essaie de passer au nouveau film.MoviePlayerViewController transition provoquant un plantage
Voici le code qui joue le film:
-(void)playMovieAtURL:(NSURL*)theURL {
MPMoviePlayerViewController* theMovie=[[MPMoviePlayerViewController alloc] initWithContentURL:theURL];
if (theMovie){
[self presentMoviePlayerViewControllerAnimated:theMovie];
theMovie.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[theMovie.moviePlayer play];
[theMovie release];
}
}
Et voici le code de l'accéléromètre:
- (void) accelerometer: (UIAccelerometer *)accelerometer didAccelerate: (UIAcceleration *)acceleration {
if (self.lastAcceleration) {
if (!shakeDetected && IsDeviceShaking(self.lastAcceleration, acceleration, 0.7)) {
shakeDetected = YES;
NSLog(@"Shake detected");
int filescount = [entries count];
int randomIndex;
for(int index = 0; index < filescount; index++)
{
randomIndex= arc4random() % filescount;
[entries exchangeObjectAtIndex:index withObjectAtIndex:randomIndex];
}
AppRecord *app = [entries objectAtIndex:randomIndex];
contentController.detailItem = app;
[self playMovieAtURL:[NSURL URLWithString:app.applink]];
}
else if (shakeDetected && !IsDeviceShaking(self.lastAcceleration, acceleration, 0.2)) {
shakeDetected = NO;
}
}
self.lastAcceleration = acceleration;
}
Le crash se produit quand il passe des vidéos à cet endroit:
[self presentMoviePlayerViewControllerAnimated:theMovie];
L'erreur de débogage lorsque je secoue pour changer de vidéos est:
Fin de l'application en raison d'une exception non interceptée 'NSInternalInconsistencyException', raison: 'Tentative de passage d'une transition modale de UINavigationController à MPMoviePlayerViewController alors qu'une transition est déjà en cours. Attendez que viewDidAppear/viewDidDisappear sache que la transition en cours est terminée '
Toutes les suggestions et idées sont grandement appréciées. Je vous remercie!!
Avez-vous trouvé un moyen de résoudre ce problème (autre que d'appeler une méthode quelques fractures d'une seconde plus tard)? – stk