MPMoviePlayerController缩放模式在iPad横向模式下不起作用

时间:2012-09-04 09:27:26

标签: iphone ios cocoa-touch mpmovieplayercontroller mpmovieplayer

我正在使用MPMoviePlayerController播放直播视频,而我正在使用的代码是

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

视频正在各个方向播放。但是我在电影播放器​​的顶部添加了一个按钮,可以让你缩放视频。

我知道在mediaplayer框架中我们有 MPMovieScalingModeNone,MPMovieScalingModeAspectFit,MPMovieScalingModeAspectFill和MPMovieScalingModeFill 类型的缩放模式选项。 当按下按钮时,我将缩放模式设置为MPMovieScalingModeAspectFill,当它第二次按下MPMovieScalingModeAspectFit时。 这在iPhone中也很有用。但是当我使用 iPad LANDSCAPE模式时,我无法进行任何缩放操作。当iPad处于横向模式时,我都无法使用适合或填充缩放模式。

为什么?可能是什么原因?

2 个答案:

答案 0 :(得分: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
}];

答案 1 :(得分:1)

如果视频宽高比已完全适合显示(视图)宽高比,则任何装配/填充操作都不会产生任何影响。这是设计而不是问题。

一旦完美贴合,您应该隐藏或禁用该按钮。要将视频宽高比与视图的宽高比进行比较,请使用播放器的naturalSize属性。

naturalSize

电影画面的宽度和高度。 (只读)

@property (nonatomic, readonly) CGSize naturalSize

讨论

  

此属性以方形报告视频的干净光圈   像素。因此,报告的尺寸考虑了变形   内容和光圈模式。

     

电影的自然尺寸可能会在此期间发生变化   回放。这通常发生在流式传输的比特率时   内容更改或播放在仅音频和a之间切换时   音频和视频的结合。