objective-c ios5 mpmovieplayercontroller

objective c - Cómo reanudar una película que se está reproduciendo con presentMoviePlayerViewControllerAnimated



objective-c ios5 (2)

Estoy usando este código para mostrar una película:

MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL]; mp.moviePlayer.movieSourceType = MPMovieSourceTypeUnknown; [self presentMoviePlayerViewControllerAnimated:mp]; [mp.moviePlayer play];

El código está funcionando bien. Sin embargo, cuando la aplicación se pone en segundo plano mientras se reproduce una película, cuando la aplicación vuelve a estar en primer plano, el reproductor de películas no se muestra. (Veo la vista del controlador que llamó a presentMoviePlayerViewControllerAnimated:mp

¿Es posible, al ingresar al fondo, reanudar la película que se estaba reproduciendo antes de que la aplicación se quedara en segundo plano?


¿Ha configurado UIBackgroundmode en el audio y también ha habido un problema al reproducir el video después de que la aplicación entre en primer plano? Consulte este tutorial en MPMoviePlayerViewController. También puede intentar usar MPMoviePlayerViewController, que tiene opciones para implementar varias notificaciones.


puede implementar técnicas de notificación para manejarlo. Agregue una notificación en la clase donde se reproduce el reproductor de películas y asóciela con un selector. Cuando la aplicación va a fondo, entonces en el método delegado

- (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. UIApplication *app = [UIApplication sharedApplication]; UIBackgroundTaskIdentifier bgTask = 0; bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ [app endBackgroundTask:bgTask]; }]; }

escriba este código. En realidad, cuando la aplicación se pone de fondo pausa el MPMoviePlayerController para que cuando llegue al primer plano publique la notificación que llama al método en la clase donde se implementó el controlador de película y vuelva a reproducirlo con este método.

-(void)playIntroAnimationAgain { [[NSNotificationCenter defaultCenter]removeObserver:self name:NOTIFICATION_PlayAgain_Player object:nil]; [self.moviePlayerController play]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playIntroAnimationAgain)name:NOTIFICATION_PlayAgain_Player object:nil]; }

Solucionó mi problema.