【问题标题】:AVPlayerViewController PIP... how to return back to app?AVPlayerViewController PIP...如何返回应用程序?
【发布时间】:2015-11-21 00:31:42
【问题描述】:

我们在 iPad Air 2 上使用 Xcode 7 构建的应用程序的 beta 版本运行画中画。图片弹出、被拖动、暂停等正确。除了我们不知道如何使第一个按钮起作用。我在文档中没有看到这一点。在我们的应用程序中,如果您将其弹出,则可以将其重新弹出,但如果您离开应用程序并点击该按钮,视频就会停止。它不会像我们在 Safari 中看到的那样将您带回我们的应用程序。

是否有说明 PIP 上第一个按钮的行为方式的文档或任何博客?

【问题讨论】:

  • 我需要使用 AVPictureInPictureController 来完成这项工作吗?

标签: ios ipad multitasking ios9 xcode7


【解决方案1】:

您的项目设置是否正确?

  1. iOS 9.0 或之后的链接。

  2. 在您项目的 Xcode Capabilities 视图中,在 Background Modes 部分中选择 Audio and AirPlay。

  3. 使用适当的类别配置您的音频会话,例如 AVAudioSessionCategoryPlayback,如果您尚未在您的应用中这样做。

对您来说最重要:

要响应用户与画中画窗口的交互,请实现 AVPlayerViewControllerDelegate 协议的方法。

将您的项目配置为支持画中画后,播放器视图控制器随后会为用户提供一个画中画按钮以及其他播放控件。

developer.apple.com

【讨论】:

  • 没错,我们这样做了。它在 PIP 模式下播放良好。它的行为不像 Safari,您可以直接跳回到您开始播放视频的应用程序中。
  • 在 macOS Safari 上做什么?
【解决方案2】:

我也遇到过类似的问题,不同的是即使在我的应用程序中我也无法返回。我发现画中画正在杀死正在启动视频播放器的 ViewController。我提出的解决方案是保留对该 ViewController 的引用,因此无法从内存中清除它。 我需要做的第二件事是使 ViewController 成为 AVPlayerViewControllerDelegate 和 playerController.delegate = self

在设置委托后,我需要监听 restoreUserInterfaceForPictureInPictureStopWithCompletionHandler

我对导航控制器说要呈现保留的视频播放器 ViewController。

【讨论】:

  • 对于这个问题,您也可以在playerViewControllerShouldAutomaticallyDismissAtPictureInPictureStart上返回false
猜你喜欢
  • 2019-01-08
  • 2018-06-05
  • 2016-09-24
  • 2010-10-21
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多