MPMoviePlayerViewController se vuelve negro cuando ingresa background

Tengo un problema con MPMoviePlayerViewController, cuando la aplicación entra en segundo plano y luego lo vuelvo a ejecutar o veo otra vista Controles, ¡la película se volvió negra! Tengo una película que se reproduce en el background de mis menus, aquí está mi código:

CÓDIGO EIDTED:

-(void)viewDidLoad { [self moviePlayer2]; } - (void) moviePlayer2 { NSString *path = [[NSBundle mainBundle] pathForResource:@"cloud" ofType:@"mp4"]; player = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:path]]; player.view.userInteractionEnabled = YES; player.moviePlayer.repeatMode = YES; player.moviePlayer.scalingMode = MPMovieScalingModeFill; player.moviePlayer.controlStyle = MPMovieControlStyleNone; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackStateChange:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:[player moviePlayer]]; [[player moviePlayer] play]; [self.view addSubview:player.view]; } -(void) moviePlayBackStateChange: (NSNotification *) note { [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackStateDidChangeNotification object:[player moviePlayer]]; [[player moviePlayer] play]; //[player release]; NSLog(@"FINISHED"); } 

gracias .

Creo que es posible que necesites agregar códigos a continuación:

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackStateChange:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:[player moviePlayer]]; 

y maneje el estado de la película en el método moviePlayBackStateChange. La película se pausará cuando la película se esté reproduciendo y la aplicación ingrese en segundo plano, por lo que debe hacer que la película se reanude como se muestra a continuación cuando la aplicación vuelve de background. De lo contrario, la película mantendrá el estado de pausa. Es por eso que su aplicación se vuelve negra.

 [[player moviePlayer] play]; 

entonces la película continuará reproduciéndose. agregando dos methods que debería invocar cuando la aplicación entra en segundo plano y retrocede desde el background:

 -(void) pauseMovieInBackGround { [player moviePlayer] pause]; [player.view removeFromSuperview]; } -(void) resumeMovieInFrontGround { [self.view addSubview:player.view]; [[player moviePlayer] play]; } 

Espero que esto te pueda ayudar.

Intente cambiar esto:

 [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:[player moviePlayer]]; [player release]; 

A esto:

 [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:[player moviePlayer]]; [movieController.view removeFromSuperview]; [player release]; 

A ver si eso funciona: D