2016-04-13 3 views
0

Согласно документации, методы делегата willStop и didStop, а также restoreUserInterfaceForPictureInPictureStopWithCompletionHandler вызывается, когда AVPictureInPictureController закрывается, независимо от того, как он закрыт. Как узнать, закрыт ли контроллер кнопкой «X» или другой кнопкой, чтобы вернуться к обычному воспроизведению?Закрытие AVPictureInPictureController

ответ

1

Различная между кнопкой X и восстановления кнопки:

Нажатие на кнопку Восстановить PiP вызовет

"pictureInPictureController(_:restoreUserInterfaceForPictureInPictureStopWithCompl etionHandler:)" 
"pictureInPictureControllerWillStopPictureInPicture" 
"pictureInPictureControllerDidStopPictureInPicture" 

Хотя нажав на кнопку закрытия будет пропуска restoreUserInterface обратного вызова и перейти прямо к

"pictureInPictureControllerWillStopPictureInPicture" 
"pictureInPictureControllerDidStopPictureInPicture" 

Таким образом, вы можете использовать флаг Bool для проверки на willStop/DidStop, вызвал ли он имя restoreUserInterface или нет.

В AVPictureInPictureViewController есть свойство pictureInPictureSuspended, но я попытался проверить его значение и обнаружил, что он всегда возвращает false в обоих случаях, поэтому я должен использовать вышеприведенный трюк, чтобы проверить, был ли пользователь нажат на кнопку восстановления или закрытия.

Смежные вопросы