[ModalTransition] Lancement des vidéos qui fait crasher mon appli sous iOS6

oseresoseres Membre
mai 2013 modifié dans API UIKit #1

Bonjour


Je suis nouveau sur ce forum


J'ai conçu une application client-serveur qui permet de drag'n'dropper des fichiers sur un iPad et permet de les consulter


La lecture des videos fait crasher l'appli sous iOS6 alors qu'il n'y avait aucun souci avant.


Pas de souci sur les autres formats de fichiers.



2013-05-17 23:01:03.484 Opening a movie : /var/mobile/Applications/1C5ED030-BBC8-4D56-A979-0BD04DCDEF8A/Documents/MaVideo.mp4
2013-05-17 23:01:03.572 *** Assertion failure in -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:], /SourceCache/UIKit/UIKit-2380.17/UIWindowController.m:211
2013-05-17 23:01:03.574*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Attempting to begin a modal transition from <VideosViewController: 0x1ee87890> to <MPInlineVideoFullscreenViewController: 0x1ee962f0> while a transition is already in progress. Wait for viewDidAppear/viewDidDisappear to know the current transition has completed'


VideosViewController.m  est appelée par FilesListingViewController.m 


 


Le lancement de la vidéo est généré par le code ci dessous dans VideosViewController.m :


 




- (IBAction)startPlayingVideoAtPath:(NSString *) pathOrURL {
player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:pathOrURL]];
if (player) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playerDidFinish)
name:MPMoviePlayerPlaybackDidFinishNotification
object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(playerDidExitFullScreen)
name:MPMoviePlayerDidExitFullscreenNotification
object:nil];
}

player.controlStyle = MPMovieControlStyleFullscreen;
[[player view] setFrame:[self.view bounds]];
[self.view addSubview:[player view]];
[player setFullscreen:YES];
[player shouldAutoplay]; // Something is broken is 4.2 >
[player play];

J'ai mis les fichiers sur Github ici : https://github.com/oseres/VideosViewControllerDebug


Merci pour votre aide.

Mots clés:

Réponses

  • AlakAlak Membre

    Rien a voir avec ton problème mais pourquoi fais-tu [player shouldAutoplay]; ?


    Tu accede au getter d'un BOOL dans le vide... 

  • Le problème est indiqué dans le message d'erreur : une transition est lancée alors que la précédente n'est pas terminée.


     


    Dans ton code on trouve :



    [self presentModalViewController:videosViewController animated:YES];
    [videosViewController startPlayingVideoAtPath:localFilePath];

    Je pense qu'il faut attendre que l'animation soit terminée avant de lancer la lecture de la vidéo.


  • oseresoseres Membre

    Merci @jpimbert :


    La FileListingView présente des vignettes et il n'y a pas pas d'animation avant la lecture de la video.


    Et je ne sais pas comment attendre viewDidAppear / viewDidDisappear ...



  • Merci @jpimbert :


    La FileListingView présente des vignettes et il n'y a pas pas d'animation avant la lecture de la video.


    Et je ne sais pas comment attendre viewDidAppear / viewDidDisappear ...




     


    Tu pourrais faire un truc du genre :


    1/ Dans FileListingView tu ne lances pas la lecture de la vidéo, tu positionnes une propriété fileToPlay dans videoViewController


    2/ tu démarres effectivement la lecture de la vidéo dans viewDidAppear de videoViewController


     


    Il y a sans doute plus sioux ; il faudrait farfouiller dans la doc pour approfondir le fonctionnement des vues sous iOS.

Connectez-vous ou Inscrivez-vous pour répondre.