好的。以下是问题所在。我有一个tabBar控制器,在索引为0的选项卡中,我有一个TableView,它的单元格显示了AVPlayerViewController的视频。对于iPhone,当我打印UIApplication.shared.windows的内容时-它只有2个窗口- UIWindow和UITextEffectWindow。但对于iPad -它有UIWindow,UITextEffectWindow和几个PGHostedWindow (3-4取决于有视频的单元的数量)。这些PGHostedWindows是什么?在我看来,当AVPlayer的视图被添加到细胞的视图层次结构中时,他们似乎是在和iPad一起创造--这让我想到,这可能与iPad在“画中画”模式下显示视频的能力有关。但是,即使我将AVPlayerViewController的allowsPictureInPicture设置为false -这些窗口仍在创建中。最糟糕的是--即使我从可见区域滚动那些带有视频的单元格,或者转到另一个选项卡--这些PGHostedWindows也不会被释放。所以问题是-这些PGHostedWindows/是什么,以及如何防止它们的创建?
发布于 2021-01-05 00:49:52
我试图调试一个从画中画恢复的AVKit问题,也注意到并想知道关于PGHostedWindow的问题。正如另一位评论者所说,我看不出有什么理由担心它的创建或生命周期。我的理解是,AVPlayer在移入/移出PiP时会在窗口之间移动AVPlayerLayer,而这个窗口是由系统管理的。
值得注意的是,我注意到了一个长期存在的问题,即在PiP上重新安装视图后,AVPlayerLayer上的任何子视图都会被视频剪辑。如果控件被扩展,Apple的示例代码也会出现同样的问题。因此,也许PGHostedWindow有一些问题,但我们被它们卡住了。
https://stackoverflow.com/questions/48176804
复制相似问题