Как предотвратить жест сжимания в MPMoviePlayerViewController? - PullRequest
1 голос
/ 28 сентября 2010

Поскольку MPMoviePlayerViewController поддерживает жест щепотки (два пальца раздвигаются), чтобы сделать проигрыватель фильма полноэкранным, есть ли способ удалить этот жест? Потому что, если я использую жест, фильм все еще воспроизводится без видео. Я думаю, что вид контроллера фильма удален из супер просмотра.

Я попытался переопределить touchesBegan и уведомление WillEnterFullScreenNotification & DidEnterFullScreenNotfication, но оно не сработало.

Ответы [ 3 ]

2 голосов
/ 28 декабря 2010

У меня была похожая проблема с «жестом щепотки», переориентировавшим отображение видео с пейзажа на портрет. Я решил это, открыв свойство view объекта MPMoviePlayerController и установив для userInteractionEnabled значение NO.

.
moviePlayer = [[MPMoviePlayerController alloc] init];
[moviePlayer view].userInteractionEnabled = NO;

Это препятствует тому, чтобы любые прикосновения пользователя проходили и изменяли ориентацию или полноэкранный статус MPMoviePlayerController.

1 голос
/ 01 ноября 2013

Это правильное решение

[[[self.moviePlayer view] subviews] enumerateObjectsUsingBlock:^(id view, NSUInteger idx, BOOL *stop) {
           [[view gestureRecognizers] enumerateObjectsUsingBlock:^(id pinch, NSUInteger idx, BOOL *stop) {
                if([pinch isKindOfClass:[UIPinchGestureRecognizer class]]) {
                    [view removeGestureRecognizer:pinch];
                }
           }];
      }];
1 голос
/ 14 января 2013

В моем случае принятый ответ от jontron / curhipster не сработал.

Но когда я установил значение moviePlayers controlStyle на MPMovieScalingModeFill, досадный укол был проигнорирован.

Myкод:

NSString *filepath   =   [[NSBundle mainBundle] pathForResource:@"tutorial" ofType:@"mov"];
NSURL    *fileURL    =   [NSURL fileURLWithPath:filepath];
self.moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(moviePlaybackComplete:)
                                             name:MPMoviePlayerPlaybackDidFinishNotification
                                           object:self.moviePlayerController];

[self.view addSubview:self.moviePlayerController.view];
self.moviePlayerController.fullscreen = YES;
self.moviePlayerController.scalingMode = MPMovieScalingModeFill;
self.moviePlayerController.controlStyle = MPMovieControlStyleFullscreen;
[self.moviePlayerController play];
...