What i have Done?
I am playing videos in an extended class of MPMoviePlayerViewController and have implemented orientation functions as follows
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
if (toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown){
return FALSE;
}
else{
return TRUE;
}
}
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[self setControlsPositions:toInterfaceOrientation];
}
-(BOOL)shouldAutorotate
{
return YES;
}
What issue i am Facing?
The application works fine up till iOS6 on Both iPhone and iPad Almong with iPad (with iOS7) but the video does not rotate over iPhone with iOS7 installed.
What is the reason for such issue and how it can be resolved?
Update
I have found that the video does rotates if
setMovieSourceType
is set toMPMovieSourceTypeUnknown
but does not rotate when set to `MPMovieSourceTypeStreaming
The rotation methods changed with iOS 6 you will need to add the iOS 6 rotate methods to your view controller:
And you need to add
Supported interface orientations
with the supported orientations to your appsinfo.plist
.From the iOS 6.0 release information:
After apple wanted me to give them a sample for the bug reported by me in iOS-7 i found that i wasn't pushing the view Controller rather i was adding the view to window. In such cases other view Controllers do get the orientation events but the
MPMoviePlayerViewController
subclass didn't so i just presentated the view controller instead of adding the its view and it worked.i think device rotation is locked in the control centre cause it running fine in ipad ios 7.
Try this solution:
At your
AppDelegate.h
:At your
AppDelegate.m
:At your ViewController:
in the
viewDidLoad
Method:And add those two methods in the same class: