Я пытаюсь использовать UITapGestureRecognizer
, чтобы обрабатывать краны на моем полноэкранном видео. Если я опускаю [self.player setFullscreen:YES animated:NO];
, он работает, но тогда мое видео не будет масштабироваться, чтобы соответствовать экрану.MpMovieplayerController распознаватель жестов касания не срабатывает, когда в полноэкранном режиме
С моей .m:
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *videoPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mov"];
player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:videoPath]];
player.shouldAutoplay = NO;
player.view.frame = self.view.bounds;
player.scalingMode = MPMovieScalingModeAspectFit;
player.controlStyle = MPMovieControlStyleNone;
player.fullscreen = YES;
self.player = player;
[self.player prepareToPlay];
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
UIView *aView = [[UIView alloc] initWithFrame:player.view.bounds];
[aView addGestureRecognizer:tapGesture];
[self.player.view addSubview:aView];
}
- (IBAction)playMovie:(id)sender {
//add the MPMoviePlayerViewController to this view (as subview)
//Play movie
[self.view addSubview:self.player.view];
[self.player setFullscreen:YES animated:NO]; //commenting out this will make it work
[self.player play];
}
- (void)handleTap:(UITapGestureRecognizer *)recognizer {
NSLog(@"tap tap");
}
С моей .h:
@property (retain, nonatomic) MPMoviePlayerController *player;
- (void)handleTap:(UITapGestureRecognizer *)recognizer;
При использовании Fullscreen, как вы делаете это, 'MPMoviePlayerController не реально использовать свой нормальный вид, но непосредственно играет на окно. Чтобы заставить ваш код работать и в полноэкранном режиме, вам нужно будет добавить этого распознавателя жестов, как только плеер переключится на полноэкранный режим. Вы бы хотели найти экземпляр MPMovieView в стеке просмотра окна и добавить его в это представление. – Till