Here is how I do it:
In the project file, make sure you support landscape orientation 
Now in all your ViewControllers, which should still only be portrait, add this code
//ios6 - (BOOL)shouldAutorotate { return NO; } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return UIInterfaceOrientationPortrait; } - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; } //ios4 and ios5 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait); }
I turned on both iOS5 and iOS6 calls so that my code works on both.
When your MPMoviePlayerController view becomes full-screen, it will be the new ViewController located on top of everything else. Thus, he will be allowed to rotate in accordance with the Orientations of the supported project interface. He will not see where you got the other ViewControllers in Portrait.
source share