Aparece el post "ADVERTENCIA: en condiciones normales, _fillInQueueWithExtraSpace: .." y la rotation MPMoviePlayer no funciona en iPad IOS 5.1

Es mi primera publicación, y puede que parezca incorrecta. Entonces, tengo que hacer rotation en cocos2d en iPad (5.1). Utilizo 2 videos diferentes para cada orientación. Y allí tengo 2 problemas:

  1. La aplicación comienza en modo vertical y reproduce el video normalmente. Llamo (juego) el video 5-10 veces, cuando termina el video, giro el simulador. La vista gira, PERO cuando llamo (juego) video, muestra la pantalla en blanco y el siguiente post:

    "ADVERTENCIA: en condiciones normales, _fillInQueueWithExtraSpace: ignoreExistingItems: no se debe volver a ingresar".

    Luego, si vuelvo a rotar la pantalla (varias veces), y lo reproduzco en el modo horizontal, reproduce bien el video. También viceversa. Cuando comienzo desde el modo horizontal

  2. El problema de rotation de la vista. Cuando giro la vista al paisaje izquierdo / derecho (desde el retrato), no puedo girar la vista hacia atrás. Entonces puedo girar solo en el sentido de las agujas del reloj o en sentido contrario. ¿Como arreglarlo?


-(id) init { pathToVideoP = [[NSBundle mainBundle] pathForResource:@"video_portrait" ofType:@"mp4"]; pathToVideoL = [[NSBundle mainBundle] pathForResource:@"video_landscape" ofType:@"mp4"]; theMovieP = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:pathToVideoP]]; theMovieL = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:pathToVideoL]]; } -(void) playVideoButtonClicked { movieButton.visible = FALSE; if (shanetworkingManager.isPortrait){ theMovie = theMovieP; } else { theMovie = theMovieL; } [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(movieFinishedCallback:) name:MPMoviePlayerPlaybackDidFinishNotification object:[theMovie moviePlayer]]; CGSize size = [[CCDirector shanetworkingDirector] winSize]; [[[CCDirector shanetworkingDirector] openGLView] addSubview:theMovie.view]; player = [self.theMovie moviePlayer]; player.controlStyle = MPMovieControlStyleNone; [theMovie moviePlayer].view.backgroundColor = [UIColor whiteColor]; theMovie.view.frame = CGRectMake(0, 0, size.width, size.height); if (shanetworkingManager.isPortrait) { CGAffineTransform transform = player.view.transform; player.view.transform = transform; } else if (shanetworkingManager.changeOrientation) { CGAffineTransform transform = player.view.transform; transform = CGAffineTransformRotate(transform, (-M_PI/2 )); player.view.transform = transform; } shanetworkingManager.changeOrientation = NO; player.backgroundView.backgroundColor = [UIColor whiteColor]; theMovie.view.backgroundColor = [UIColor whiteColor]; player.view.userInteractionEnabled = NO; player.scalingMode = MPMovieScalingModeNone; [player play]; } -(void) moviePreloadDidFinish:(id)sender { } -(void) movieFinishedCallback:(NSNotification*) aNotification { theMovie = [aNotification object]; [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:theMovie]; [player stop]; [theMovie.view removeFromSuperview]; movieButton.visible = TRUE; } 

Agregue esta línea de código después de crear el object del jugador. player = [self.theMovie moviePlayer]; player.controlStyle = MPMovieControlStyleNone;

Es necesario en la versión inferior de iOS 6.0. Puede ser útil.

[player prepareToPlay];