1

我正在使用 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];

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

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

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

4

2 回答 2

1

你可以像这样提供随机缩放:

[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
}];
于 2012-09-04T09:49:17.623 回答
1

如果视频纵横比已经完全适合显示(视图)纵横比,则任何适合/填充操作都没有任何效果。这是设计使然,不是问题。

一旦出现如此完美的配合,您应该隐藏或禁用该按钮。要将视频纵横比与视图的纵横比进行比较,请使用播放器的 naturalSize 属性。

naturalSize

影片帧的宽度和高度。(只读)

@property (nonatomic, readonly) CGSize naturalSize

讨论

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

影片的自然大小可能会在播放过程中发生变化。这通常发生在流媒体内容的比特率发生变化或播放在纯音频和音频和视频组合之间切换时。

于 2012-09-04T21:19:26.340 回答