прямо в точку: наше приложение имеет UITableView
с UITableViewCell
, которое имеет AVPlayerViewController
внутри (его вид) + пользовательские элементы управления видео. Одним из элементов управления является режим fullscreen . Обратите внимание, что все работает отлично - загрузка видео, повторное использование, даже на весь экран.
Полноэкранный режим основан на создании нового UIWindow
, установке его rootViewController
для видеоплеера и создании его keyAndVisible - в основном показ полноэкранного AVPlayerViewController
из подпредставления ячейки при нажатии
Проблема возникает, когда пользователь блокирует свое устройство - после разблокировки полноэкранное окно «исчезает», и приложение «зависает» / застревает на предыдущем экране (список с ячейкой видео, текстовые ячейки .. - один что сделало новый UIWindow
)
UIWindow
(видео окно) есть, но без содержимого (без подпредставлений, VC ..) поверх основного (приложение, список табличных представлений ..) UIWindow
- см. картинки .
Эта проблема не происходит на симуляторе - только реальные устройства.
Просмотр отладки иерархии перед блокировкой устройства и показом видео в полноэкранном режиме (с новым UIWindow
):
Просмотр отладки иерархии после разблокировки устройства и зависания приложения в предыдущем UIWindow
:
Есть ли какое-нибудь возможное исправление? Или лучший способ представления AVPlayerViewController
из UITableViewCell
(во время воспроизведения и без остановки видео)?
Примечание: ошибка возникает, даже если мы удаляем изменение ориентации ландшафта / портрета, похоже, что проблема связана с UIWindow
PS: извините за сокрытие имен на картинках - NDA ...