由于我们的内容提供商的要求,我们的应用程序需要能够禁用Airplay Mirror我们的播放器的功能,同时在应用程序在后台的画中画。
当应用程序在前台时,我们会观察UIScreenDidConnectNotification,并利用它来呈现另一个屏幕,但是当应用程序进入后台时,在应用程序返回到前台之前不会通知观察者。这允许我们的DRM视频内容镜像到AppleTV,而画中画是活动的。
我们也试图观察' isExternalPlaybackActive' AVPlayer实例的属性,但即使使用AVPlayerViewController的示例项目,我们也无法观察到该值的任何更改。通过计时器,我们还验证了即使应用程序位于前台,而AVPlayer实例也是全屏的,当镜像内容时,值不会发生变化。 Key Value Observing唯一一次显示值变化是最初设置的时间。
我们还尝试设置一个计时器,使用NSOperation将在后台继续,而画中画是活动的。在画中画处于活动状态且后台应用程序中,观察到UIScreen.screens.count没有保持相同值1的变化。还观察到AVPlayer实例的isExternalPlaybackActive属性仍然是&#39假#39;
我们做的另一个尝试是设置AVPlayer'使用外部播放后期外部屏幕活动'并且'允许外部播放',但这也阻止了播放器通过Airplay Mirroring显示。
通过这些尝试,我们已经耗尽了文档中的资源,并希望找到一种解决方案,仍然允许我们在后台使用应用启用画中画。