В моем приложении для iPad у меня есть UIButton, который вызывает IBAction, чтобы вызвать контроллер представления как модал для показа видео. Я хотел, чтобы модал отображался как 720x405, и эта часть, кажется, работает хорошо.Вот код IBAction, который выполняет кнопка:
-(IBAction)videoPlayerTest:(id)sender {
VideoModalViewController *vc = [[VideoModalViewController alloc] initWithNibName: @"VideoModalViewController" bundle: nil];
vc.fileName = @"testvideo.m4v";
vc.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:vc animated: YES];
vc.view.superview.frame = CGRectMake(0, 0, 720, 405);
vc.view.superview.center = self.view.center;
[vc release];
}
Модал появляется там, где я хочу, и элементы управления отвечают на MPMoviePlayerController;джог-бар, пауза, воспроизведение и т. д., но если пользователь нажимает на полноэкранную кнопку, видео переходит в полноэкранный режим, но после этого MPMoviePlayerController не будет реагировать на любые последующие нажатия на элементы управления проигрывателем.Если я удалю строку modalPresentationStyle, она будет работать, но модал появляется в полноэкранном режиме вместо 720x405, как я хочу.Я добавил Обозреватели, чтобы попытаться изменить размер кадра и перенастроить его, когда пользователь переводит контроллер фильма в полноэкранный режим и обратно в оконный режим, но, похоже, это совсем не помогло.Вот этот код.
- (void)willEnterFullscreen:(NSNotification*)notification {
NSLog(@"willEnterFullscreen");
[self setModalPresentationStyle:UIModalPresentationFullScreen];
self.view.frame = CGRectMake(0, 0, 1024, 768);
self.view.center = self.view.center;
}
- (void)willExitFullscreen:(NSNotification*)notification {
NSLog(@"willExitFullscreen");
[self setModalPresentationStyle:UIModalPresentationFormSheet];
self.view.frame = CGRectMake(0, 0, 720, 405);
self.view.center = self.view.center;
}
- (void)playMovie {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willEnterFullscreen:) name:MPMoviePlayerWillEnterFullscreenNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willExitFullscreen:) name:MPMoviePlayerWillExitFullscreenNotification object:nil];
NSString *videoString = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:fileName];
NSURL *videoURL = [NSURL fileURLWithPath:videoString];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
[self.view addSubview:moviePlayer.view];
moviePlayer.view.frame = CGRectMake(0, 0, 720, 405);
moviePlayer.view.backgroundColor = [UIColor grayColor];
[moviePlayer prepareToPlay];
[moviePlayer play];
}
Это мой первый пост - надеюсь, я все сделал правильно и предоставил достаточно информации о проблеме, с которой я столкнулся.