【问题标题】:Screen blackout when performing Pinch Gesture on MPMoviePlayerController在 MPMoviePlayerController 上执行捏合手势时屏幕黑屏
【发布时间】:2010-08-18 10:57:05
【问题描述】:

我在 iOS4 中遇到了这个奇怪的问题,当用户在屏幕上执行某种手势时,在 MPMoviePlayerController 中播放的视频会变黑。我只是为MPMoviePlayerController 创建一个UIViewController 和对象,然后将视图设置到UIViewController

我想问一下这个问题是否可以解决,以及在 iPhone 上播放流媒体视频的正确方法是什么。

如果有办法我可以在MPMoviePlayerController 上使用覆盖视图并捕获所有手势并将单击或触摸传递给MPMoviePlayerController 以获得MPMoviePlayerController 的一般功能并避免导致问题的手势。

请帮助我使用最佳解决方案解决问题,并帮助我详细说明解决方案。

【问题讨论】:

  • 我也见过这个。我注意到它与发送的事件有关。捏手势就像从嵌入模式切换到全屏模式一样,可能会发送完成播放事件。我一直无法弄清楚为什么。

标签: ios mpmovieplayercontroller


【解决方案1】:

Apple 在MPMoviePlayerViewController 中嵌入了UIPinchGestureRecognizer,但在UIResponder.gestures 属性中找不到。 您可以禁用嵌入在MPMoviePlayerViewControllertouchesBegan 方法中的UIPinchGestureRecognizer

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { for (UITouch *touch in touches) { NSArray *array = touch.gestureRecognizers; for (UIGestureRecognizer *gesture in array) { if (gesture.enabled && [gesture isMemberOfClass:[UIPinchGestureRecognizer class]]) { gesture.enabled = NO; } } } }

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,我刚刚从 Apple 的文档中找到了问题的原因:

    当您将电影播放器​​的视图添加到应用的视图层次结构中时,请确保正确调整帧大小,如下所示:

    ...

    [player.view setFrame: myView.bounds]; // 玩家的框架必须与父母的相匹配

    ...

    现在我的操作不会让我的应用崩溃。

    【讨论】:

      【解决方案3】:

      我看到了这个问题并找到了一个简单的解决方法。

      由于我们不想使用MPMoviePlayerViewController,因此无法使用上述手势核对技巧(我们有一些自定义控件,当视频不是全屏并希望保持平滑过渡时)。

      症状(iOS 5.1):

      • 当用户反复以全屏模式打开视频,将其从全屏模式拉出,然后对新视频执行相同操作时,当视频第 5 次启动并进入全屏模式时,屏幕会变黑。
      • 当屏幕变黑时,可以通过单击隐藏和显示状态栏,但不会出现视频或导航栏。
      • 在全屏模式下使用“完成”按钮而不是捏合,可以关闭全屏模式而不会出现任何问题。
      • 我们为每个视频分配一个新的MPMoviePlayerController,并且不会泄露任何内容。这没有帮助。

      解决方法:

      当关闭包含MPMoviePlayerController 视图的视图时,我们在播放器上设置contentURL = nil

      之后我们在后续MPMoviePlayerController 实例上没有出现黑屏问题。

      似乎在使用“完成”按钮时执行了一些内部清理,但在捏合关闭全屏时却没有。

      【讨论】:

        【解决方案4】:

        我讨厌这个问题。我能够找到的是,具有全屏模式需要具有嵌入式控制,以便NSNotificationCenter 以正确的Notification 响应。听起来既愚蠢又可笑,但这是我在 4.0 中发现的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-01-15
          • 1970-01-01
          • 1970-01-01
          • 2010-11-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多