1

Я использую MPMoviePlayerController играть живое потоковое видео, и код, который я используюрежим масштабирования MPMoviePlayerController не работает в режиме IPad ландшафтного

[_moviePlayerController.view setFrame:self.view.bounds]; 
[_moviePlayerController prepareToPlay]; 
_moviePlayerController.fullscreen=YES; 
_moviePlayerController.controlStyle = MPMovieControlStyleNone; 
[_moviePlayerController setFullscreen:YES animated:YES]; 
[self.view addSubview:_moviePlayerController.view]; 

Видео играет во всех направлениях. Но я добавил одну кнопку поверх фильма, которая позволяет масштабировать видео.

Я знаю, что в рамках медиаплеера мы имеем MPMovieScalingModeNone, MPMovieScalingModeAspectFit, MPMovieScalingModeAspectFill и MPMovieScalingModeFill типов масштабирования вариант режима. Когда кнопка нажата, я устанавливаю режим масштабирования как MPMovieScalingModeAspectFill, когда он нажат второй раз MPMovieScalingModeAspectFit. Это также отлично работает в iPhone. Но когда я не могу выполнять какую-либо операцию масштабирования, когда я использую iPad LANDSCAPE Mode. Я также не могу использовать режим Fit или fill scaling, когда iPad находится в ландшафтном режиме.

Почему? Что может быть причиной ?

ответ

1

Если отношение видео аспект уже идеально подходит на соотношение сторон дисплея (вид), ни один из фита/заливки операции имеют никакого эффекта. Это по дизайну и не проблема.

Вы должны скрыть или отключить эту кнопку, как только появится такая идеальная подгонка. Чтобы сравнить соотношение сторон видео с форматом представления, используйте свойство naturalSize проигрывателя.

naturalSize 

Ширина и высота кадра фильма. (Только чтение)

@property (nonatomic, readonly) CGSize naturalSize 

Обсуждение

Это свойство сообщает чистую апертуру видео в квадратных пикселей. Таким образом, в указанных измерениях учитываются анаморфные и режимы апертуры.

Возможно изменение естественного размера фильма во время воспроизведения . Обычно это происходит, когда изменяется скорость передачи потокового контента или когда воспроизведение переключается между аудио-и только с аудио-видео и .

+0

Наверное, мне нужно скрыть кнопку. Других вариантов для меня нет. :(Я пытался NSLog, что вы сказали. Как _moviePlayer.naturalsize и при печати ширины и высоты получаю значения как 640 x 480. – Perseus

+0

1024x768 имеет аспектный ранг 1,33333 и 640x480 также имеет соотношение сторон 1.33333 => идеальная посадка. – Till

1

U может обеспечить случайное масштабирование, как это:

[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ 

    moviePlayer.view.transform = CGAffineTransformMakeScale(0.7f, 0.7f); 

} completion:^(BOOL finished){ 
    // if you want to do something once the animation finishes, put it here 
}]; 
Смежные вопросы