Ответ
Лучше использовать applicationWillResignActive.
Почему?
applicationWillResignActiveвызывается немедленно при любом переходе приложения в неактивное состояние (входящий звонок, открытие Control Center, перетягивание шторки уведомлений). Это обеспечивает мгновенную реакцию.applicationDidEnterBackgroundвызывается только после полного сворачивания приложения (пользователь нажал Home или переключил приложение). Между этими событиями может быть задержка, в течение которой видео продолжит воспроизводиться.
Пример реализации:
func applicationWillResignActive(_ application: UIApplication) {
// Немедленная остановка при потере фокуса
videoPlayer.pause()
}
func applicationDidBecomeActive(_ application: UIApplication) {
// Возобновление, если приложение снова в фокусе
if shouldResumePlayback {
videoPlayer.play()
}
}
Исключение: Если ваше приложение имеет право на воспроизведение аудио/видео в фоне (например, музыкальный плеер), логику паузы следует перенести в applicationDidEnterBackground и проверять тип контента.