1

我正在创建我的自定义 MPMoviePlayer。

对于全屏管理,MPMoviePlayerController行为方式如下:

- (void)setFullscreen:(BOOL)fullscreen animated:(BOOL)animated;

我也想做同样的事情,但要加上UIViewController一个UIView. 但是当使用 a 时UIViewController,方向不受管理

我目前的代码:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[[appDelegate window] addSubview:myViewController.view];

我想使用UIViewController.

谢谢你的帮助

4

2 回答 2

1

setFullscreen:YES...在该实例上使用时MPMoviePlayerController,它将停止使用您提供的视图堆栈,而是使用它自己的(直接在窗口上)。

换句话说;

MPMoviePlayerControllerview 实例在切换到全屏模式后不会始终坚持提供的父视图。只有在使用非全屏模式时才会这样做。

要解决该功能,您需要实现自己的在全屏和嵌入式模式之间切换的方法。听起来很重要,但实际上是微不足道的。

只需在您的 viewController 中创建一个看起来像这样的方法。

以下假设:

  • 你的 viewController 处理整个屏幕
  • 您的 viewController 有一个CGRect包含嵌入指标的属性(类型化)
  • MPMoviePlayerController在该 viewController 中的实例被调用player

我跳过了任何可能的动画让你自己实现。您还可以在此方法中切换控件样式以模仿原始行为。

- (void)setFullscreen:(BOOL)fullscreen
{
    if (fullscreen)
    {
        self.player.view.frame = self.view.bounds;
    }
    else
    {
        self.player.view.frame = self.embeddedPlayerFrame;
    }
}
于 2013-05-25T19:13:54.727 回答
0

我可以 !

我的 ViewController "myViewController" 被添加到所有带有方向管理的视图中:

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UIViewController *rootViewController = appDelegate.window.rootViewController;
[rootViewController presentViewController:myViewController animated:NO completion:nil];
于 2013-06-11T10:59:16.457 回答