【问题标题】:Better way to make MPMoviePlayer with Overlay view使用叠加视图制作 MPMoviePlayer 的更好方法
【发布时间】:2011-04-26 10:36:17
【问题描述】:

当我们使用 MPMoviePlayer(在自定义 UIViewController 中)和在电影播放器​​之上覆盖 UIViewController 创建应用程序时,更好的是: - 使用 self.view.presentModalView... 或 self.view.addSubView... 在播放器中加载电影 或者有没有其他更好的方法。我现在使用模态视图,一切正常,除了我必须实现一些自定义旋转。我正在寻找更清晰的方法来实现这一点。

好吧,也许更多细节。在 iPhone 应用程序中,我添加了模态视图之类的播放器,并向其添加了覆盖视图,这样就可以了。但这是通用应用程序,它在 iPad 上的运行方式与在 iPhone 上的运行方式不同。在 ipad splitView 中,我的播放器位于详细信息一侧(非全屏),当我双击播放器时,它会全屏显示。现在播放器是关键窗口。这是最大的问题。我尝试将叠加视图添加为子视图和模态视图,但我做到了,但叠加不知道设备方向,我必须转换叠加元素,这就是我想要避免的。有什么方法可以检测该视图的旋转吗?

【问题讨论】:

  • 这个问题过于宽泛且具有争议性。没有更好的办法。有些选项适用于某些情况。
  • 我希望有一些例子来说明其他人如何使用叠加视图添加播放器。
  • 我添加了更多相关信息。
  • 你了解委托的原则吗?
  • 我了解了代表。但我不知道这对我有什么帮助:(

标签: iphone ios4 ipad mpmovieplayercontroller mpmovieplayer


【解决方案1】:

简单而优雅的解决方案:

不要使用“真正的”全屏模式,而是将 MPMoviePlayerController 的视图缩放到屏幕填充大小 - MPMoviePlayerController.view.frame = CGRectMake(0.0f, 0.0f, 768.0f, 1024.0f);。将MPMoviePlayerControllerview 放在允许旋转的常规UIViewControllerview 之上(addSubview)。将您的自定义界面视图保持在 MPMoviePlayerController 的视图 (addSubview) 之上,然后,无论您是否以“全屏”模式运行它,您都将获得一个正确旋转的视频播放器。

【讨论】:

    【解决方案2】:

    我找到了一个解决方案,但我不是很自豪,因为我认为有更好的方法,但这个解决方法有效: - 在项目中,我有一个包含一些全局数据的单例类。 - 当应用程序启动详细视图 (UISplitView) willAnimateRotationToInterfaceOrientation 方法首先被调用。在这里,我获取当前方向并将其存储在单例类中。 - 后来当我在播放器顶部添加叠加时,我从单例读取数据并转换叠加元素。

    【讨论】:

      【解决方案3】:

      根据上面我做了这样的事情:

      mp = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"]];
      
      mp.movieSourceType = MPMovieSourceTypeStreaming;
      
      mp.view.frame = CGRectMake(0.0f, 0.0f, 1024.0f, 768.0f);
      
      [self.view addSubview:mp.view];
      
      mp.controlStyle = MPMovieControlStyleNone;
      
      [self.view addSubview:self.myOverlay];
      
      
      [mp play];
      

      其实就是这么简单!只需将控件样式选择为 None 并在播放器视图中添加低不透明度视图。

      【讨论】:

        猜你喜欢
        • 2017-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-15
        • 1970-01-01
        相关资源
        最近更新 更多