Это, кажется, ошибка в 4.0, она работает правильно при выходе с помощью кнопки «Готово».
Обходной путь, который я использую, заключается в том, чтобы вручную сохранить фрейм, а затем восстановить его при получении MPMoviePlayerPlaybackDidFinishNotification
.
Наконец, чтобы получить его в ландшафтном режиме, используйте подкласс MPMoviePlayerViewController
, где вы переопределять shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
Т.е. что-то вроде этого:
@interface CustomMoviePlayerViewController : MPMoviePlayerViewController
@end
@implementation CustomMoviePlayerViewController
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return toInterfaceOrientation == UIInterfaceOrientationLandscapeRight || toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft;
}
@end
И в контроллере, чтобы работать вокруг ошибки:
- (void)playbackEnded:(NSNotification *)notification
{
[[self view] setFrame:[self originalFrame]];
}
- (void)playMovie:(NSString *)movieURLString
{
MPMoviePlayerViewController *controller = [[CustomMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:movieURLString]];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackEnded:) name:MPMoviePlayerPlaybackDidFinishNotification object:[controller moviePlayer]];
[self presentMoviePlayerViewControllerAnimated:controller];
}
Спасибо !!! Я попробую. –
Это сработало для вас? – Nuoji
Посмотрите на мое решение, если у вас все еще есть проблема – Sid