的MPMoviePlayerController

的MPMoviePlayerController

我正在创建一个iOS iPad应用程序,该应用程序除其他外将利用其中一个屏幕在另一个名为“ CommandMessageView”的视图下方的MPMoviePlayerController。这是我的.h文件的相关部分:

@interface MovieViewController : UIViewController

@property (strong, nonatomic) MPMoviePlayerController *moviePlayer;
@property (strong, nonatomic) IBOutlet UIView *MovieView;
@property (strong, nonatomic) IBOutlet UIView *CommandMessageView;


然后是.m文件的相关部分:

@implementation MovieViewController

@synthesize MovieView;
@synthesize moviePlayer;
@synthesize CommandMessageView;

- (void)viewDidLoad {
     [super viewDidLoad];

// Video Setup

NSURL *currentVideoURL = [NSURL URLWithString:
              self.currentVideo];

moviePlayer =  [[MPMoviePlayerController alloc]
                 initWithContentURL:currentVideoURL];
moviePlayer.controlStyle = MPMovieControlStyleNone;
moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
[moviePlayer.view setFrame: MovieView.bounds];
moviePlayer.shouldAutoplay = NO;
[MovieView addSubview:moviePlayer.view];
[moviePlayer prepareToPlay];
}


视频可以正常播放,除非将视图旋转为纵向,在这种情况下,视频位于屏幕中间,并且只有前2/3(水平)可见。如果有帮助,可以在此处查看屏幕截图:




我希望的是,为自动布局(几乎全屏显示)设置的UIView MovieView可以定义视频可以放入其中的边界以及正确的图层(commandMessageView出现在其顶部)。显然,情况有所好转,但是在调整了许多选项之后,没有任何回旋余地。是否有明显的我想念的地方/做错了什么,或者您可以想到的界面构建器中要解决的东西?预先感谢您的帮助!

最佳答案

不知道具体如何工作,但添加以下行:

[moviePlayer.view setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];


之后

[moviePlayer.view setFrame: MovieView.bounds];


有我想要的行为。

祝大家编码愉快!

关于ios - UIView中的MPMoviePlayerController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21486248/

10-09 14:52