Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
UKVED
Комплексные IT решения
для вашего бизнеса
+7 495 133 92 44
+7 495 133 92 44
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
Сопровождение 1С
  • Внедрение 1С
  • Обновление 1С
  • Обслуживание 1С
  • Поддержка 1С
  • Разработка 1C
Аренда 1С (1С:ФРЕШ)
Бухгалтерское сопровождение
Аренда сервера
  • Выделенный сервер 1C
  • Аренда сервера для 1C
  • Почтовые серверы
  • Backup серверы
Разработка мобильных приложений
Наши мобильные приложения
AmoCRM
  • Внедрение AmoCRM
  • Интеграция AmoCRM
  • Разработка виджетов AmoCRM
Системное администрирование
  • Обслуживание компьютеров
  • Обслуживание локальной сети
  • Обслуживание телефонии
IP телефония
Каталог товаров
  • 1С отчетность
  • Лицензии 1С
    • Комплексное управление ресурсами предприятия (ERP)
    • Клиентские лицензии
    • Серверные лицензии
    • Бухгалтерский и налоговый учет
    • ЗУП и кадровый учет (HRM)
    • Управление складом, логистикой и продажами
  • ТСД Клеверенс
  • ИТС
  • Тарифы ИТС
  • Наши решения
Наши внедрения
Статьи
Контакты
Комплексные IT решения
для вашего бизнеса
+7 495 133 92 44
+7 495 133 92 44
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
UKVED
  • Сопровождение 1С
    • Внедрение 1С
    • Обновление 1С
    • Обслуживание 1С
    • Поддержка 1С
    • Разработка 1C
  • Аренда 1С (1С:ФРЕШ)
  • Бухгалтерское сопровождение
  • Аренда сервера
    • Выделенный сервер 1C
    • Аренда сервера для 1C
    • Почтовые серверы
    • Backup серверы
  • Разработка мобильных приложений
  • Наши мобильные приложения
  • AmoCRM
    • Внедрение AmoCRM
    • Интеграция AmoCRM
    • Разработка виджетов AmoCRM
  • Системное администрирование
    • Обслуживание компьютеров
    • Обслуживание локальной сети
    • Обслуживание телефонии
  • IP телефония
  • Каталог товаров
    • 1С отчетность
    • Лицензии 1С
      • Комплексное управление ресурсами предприятия (ERP)
      • Клиентские лицензии
      • Серверные лицензии
      • Бухгалтерский и налоговый учет
      • ЗУП и кадровый учет (HRM)
      • Управление складом, логистикой и продажами
    • ТСД Клеверенс
    • ИТС
    • Тарифы ИТС
    • Наши решения
  • Наши внедрения
  • Статьи
  • Контакты
1СFranch.pngmintsifryi_1С.png
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
UKVED
Телефоны
+7 495 133 92 44
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
UKVED
  • Сопровождение 1С
    • Сопровождение 1С
    • Внедрение 1С
    • Обновление 1С
    • Обслуживание 1С
    • Поддержка 1С
    • Разработка 1C
  • Аренда 1С (1С:ФРЕШ)
  • Бухгалтерское сопровождение
  • Аренда сервера
    • Аренда сервера
    • Выделенный сервер 1C
    • Аренда сервера для 1C
    • Почтовые серверы
    • Backup серверы
  • Разработка мобильных приложений
  • Наши мобильные приложения
  • AmoCRM
    • AmoCRM
    • Внедрение AmoCRM
    • Интеграция AmoCRM
    • Разработка виджетов AmoCRM
  • Системное администрирование
    • Системное администрирование
    • Обслуживание компьютеров
    • Обслуживание локальной сети
    • Обслуживание телефонии
  • IP телефония
  • Каталог товаров
    • Каталог товаров
    • 1С отчетность
    • Лицензии 1С
      • Лицензии 1С
      • Комплексное управление ресурсами предприятия (ERP)
      • Клиентские лицензии
      • Серверные лицензии
      • Бухгалтерский и налоговый учет
      • ЗУП и кадровый учет (HRM)
      • Управление складом, логистикой и продажами
    • ТСД Клеверенс
    • ИТС
    • Тарифы ИТС
    • Наши решения
  • Наши внедрения
  • Статьи
  • Контакты
  • 0 Корзина
  • +7 495 133 92 44
    • Телефоны
    • +7 495 133 92 44
    • +7 906 045 2827
  • г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
  • sale@ukved.ru
  • Пн. – Пт.: с 9:00 до 18:00
1СFranch.pngmintsifryi_1С.png
Главная
—
Статьи
—
Общее

Picture-in-Picture в iOS: запуск и переключение контента

Picture-in-Picture в iOS: запуск и переключение контента

Picture-in-Picture в iOS: запуск и переключение контента

Содержание
что такое picture-in-picture в iOS и где он нужен бизнесупочему PiP не запускается или обрывается при переключении контентакак исправить проблему с запуском и переключением PiPчто делать, если ошибка PiP повторяется даже после исправленийкак предотвратить сбои PiP при переключении контентасколько стоит добавить PiP в корпоративное приложение❓ Частые вопросы

Picture-in-Picture в iOS позволяет свернуть видео в плавающее окно поверх любого экрана — пользователь смотрит ролик и одновременно работает в другом приложении. Технически это AVKit и AVFoundation: AVPictureInPictureController запускает режим, а системный делегат отвечает за переключение контента без обрыва воспроизведения. Для бизнес-приложений это способ совмещать видеоконсультацию с заполнением формы или заказа.

что такое picture-in-picture в iOS и где он нужен бизнесу

PiP появился в iPadOS в 2015 году, на iPhone заработал только с iOS 14 в 2020-м — до этого свернуть видео в плавающее окно на смартфоне было нельзя в принципе. Технически режим строится на AVKit и AVFoundation: приложение создаёт AVPictureInPictureController, привязывает его к слою плеера, а система сама рисует плавающее окошко, ловит жесты пользователя и передаёт события через делегат. Разработчику не нужно рисовать окно руками — нужно правильно объявить возможности и корректно реагировать на переходы между состояниями. Отдельный момент — минимальная версия iOS: если часть сотрудников работает на устройствах с iOS 13 и старше, для них PiP просто недоступен, и приложению нужен запасной сценарий без него.

Для типового B2B-приложения из Москвы PiP не «фича ради фичи». Это конкретные сценарии: диспетчер логистической компании смотрит видеоинструктаж по погрузке и одновременно сверяет накладную в заказе; мастер сервисной службы на видеозвонке с клиентом одновременно заполняет карточку заявки; менеджер по продажам показывает демо продукта на созвоне и параллельно готовит коммерческое предложение в CRM; риелтор показывает видеотур по объекту, пока клиент листает планировку в том же приложении. Во всех случаях сотрудник не переключается между двумя полноэкранными приложениями — видео остаётся на экране, пока идёт работа. Мы закладываем такие сценарии, когда делаем разработку мобильных приложений для компаний, у которых видео и рабочие данные должны жить в одном экране одновременно.

почему PiP не запускается или обрывается при переключении контента

Кладовщик на складе в Подольске смотрит на планшете видеоинструкцию по сборке заказа, сворачивает приложение свайпом вверх, чтобы открыть карточку заказа в учётной системе — и видео пропадает. Не сворачивается в окошко, а просто останавливается, экран чёрный. Через пару секунд приложение на переднем плане, а плеер молчит. Кладовщик открывает видео заново, перематывает к нужному месту — теряет минуту-две на каждой сборке, а таких сборок за смену десятки.

Причина почти всегда одна из типовых. Первая — категория аудиосессии. По умолчанию iOS ставит .soloAmbient, а эта категория останавливает звук при сворачивании приложения, и PiP не может стартовать без активного аудиопотока. Вторая — в Xcode не включён background mode «Audio, AirPlay, and Picture in Picture»: без этого флага система прерывает воспроизведение сразу при уходе в фон, до того как успевает открыться окно PiP. Третья причина касается именно переключения контента — того самого места в заголовке этой статьи. Если для каждого нового видео в приложении создаётся новый AVPlayer и новый AVPictureInPictureController вместо переиспользования одного через единый источник контента, система на секунду теряет связь между старым и новым плеером — получается чёрный кадр или полный обрыв PiP. Четвёртая причина — банальная: разработчик тестировал сценарий один раз на своём iPhone и посчитал задачу закрытой, не проверив переключение между тремя-четырьмя роликами подряд, с которым реально столкнётся пользователь.

Если это не починить, теряется не пара секунд у одного кладовщика. На созвоне с клиентом обрыв PiP выглядит как зависшее приложение — часть клиентов вешает трубку и не перезванивает, сделка срывается прямо на демонстрации. В сторе это оседает в отзывах с формулировкой «глючит», рейтинг приложения падает, а с ним и органические установки. И каждая переделка PiP постфактум, когда архитектура уже завязана на пересоздание плеера при каждом видео, стоит дороже, чем заложить это правильно с самого начала разработки.

как исправить проблему с запуском и переключением PiP

Первым делом стоит проверить поддержку через AVPictureInPictureController.isPictureInPictureSupported() — на части старых устройств и в определённых конфигурациях PiP недоступен физически, и дальнейшая отладка бессмысленна. Дальше по порядку:

  • ✓категория аудиосессии выставляется в .playback ещё до запуска плеера, а не по факту сворачивания приложения;
  • ✓в Signing & Capabilities target добавляется background mode «Audio, AirPlay, and Picture in Picture»;
  • ✓реализуется AVPictureInPictureControllerDelegate, а метод failedToStartPictureInPictureWithError логируется — именно там видна настоящая причина отказа, а не догадки по внешним симптомам;
  • ✓для автоматического старта при уходе в фон включается canStartPictureInPictureAutomaticallyFromInline = true.

Для переключения контента между несколькими видео правильная архитектура — один контроллер PiP на всё приложение через AVPictureInPictureControllerContentSource (доступен с iOS 15), а не пересоздание контроллера под каждый новый ролик. Старый плеер перед подменой корректно останавливается и освобождается, новый подключается к тому же слою — тогда переключение происходит без чёрного кадра и обрыва звука. Выбор конкретного способа зависит от того, что показывает приложение — файл, живой видеозвонок или плейлист, — и таблица ниже показывает, какой вариант под какую задачу. Если приложение параллельно тянет данные заказа из учётной системы, тут же стоит проверить и интеграцию приложения с 1С — фоновый запрос к базе не должен блокировать основной поток и мешать плееру держать PiP.

сравнение способов реализации PiP

способ что показывает когда подходит сложность
AVPlayerViewController стандартный проигрыватель видеофайла обучающие ролики без брендированного интерфейса низкая
AVPictureInPictureController + свой плеер кастомный UI поверх AVPlayer брендированные курсы, видео с элементами управления заказчика средняя
AVPictureInPictureVideoCallViewController поток с камеры или видеозвонок удалённая техподдержка, видеоосмотр объекта высокая
AVPictureInPictureControllerContentSource единая точка для смены видео плейлисты и переключение контента без разрыва PiP средняя-высокая

что делать, если ошибка PiP повторяется даже после исправлений

Если код исправлен по чек-листу выше, а PiP всё равно срывается — на реальных устройствах, а не в разработке — причина обычно глубже кода одного экрана. Первое, что стоит проверить: тестировался ли PiP только в симуляторе Xcode. Это частая ловушка — симулятор не поддерживает полноценный композитинг Picture-in-Picture, и код, идеально работающий там, может падать на реальном iPhone. Второе — нагрузка на память: если приложение параллельно держит открытыми несколько тяжёлых экранов с данными заказов, система может убить фоновый процесс плеера при нехватке памяти, и PiP оборвётся без ошибки в логах приложения — только в системном логе устройства. Третье — режим низкого энергопотребления и тепловой троттлинг на возрастных моделях: склады часто используют iPhone SE второго поколения или бюджетные модели, купленные несколько лет назад, и на них PiP отваливается заметно чаще, чем на актуальных устройствах. Четвёртое — конфликт со сторонними SDK: аналитика или push-библиотека может переопределять категорию AVAudioSession после того, как её выставило основное приложение.

Практическая проверка занимает немного времени: подключить реальное устройство, включить системные логи через консоль, воспроизвести сценарий сворачивания трижды подряд с разными видео и посмотреть, в какой момент система разрывает связь с плеером. Часто причина видна уже на этом шаге, без глубокого дебага.

Если проблема повторяется на этом этапе, дальнейший перебор вариантов вручную обычно дороже, чем один системный аудит: проверка на матрице реальных устройств разных поколений, разбор системных логов через Instruments и полная трассировка жизненного цикла AVPlayer от старта до переключения контента. Для компаний, где PiP встроен в более крупный B2B-сценарий с заказами и заявками, такой аудит логично делать вместе с проверкой всего мобильного контура — мы разбираем это на примере B2B-приложений с 1С.

как предотвратить сбои PiP при переключении контента

Дешевле заложить архитектуру правильно на старте, чем чинить её после релиза в сторе. Три вещи, которые стоит закрепить в требованиях к разработке ещё на этапе проектирования: один переиспользуемый AVPictureInPictureController на всё приложение вместо пересоздания под каждое видео; обязательная очистка предыдущего плеера — остановка, снятие наблюдателей, освобождение памяти — перед загрузкой следующего ролика; и тестирование PiP только на физических устройствах перед каждым релизом, включая пару моделей трёхлетней давности, если ими реально пользуются сотрудники в поле.

Отдельно стоит завести мониторинг крашей именно по PiP-сценариям — в системах вроде Crashlytics такие падения легко перепутать с обычным фоновым завершением процесса, если не смотреть на них отдельно. И финальная проверка — документировать в чек-листе QA конкретные шаги: сворачивание во время воспроизведения, переключение между тремя разными видео подряд, возврат в приложение через кнопку на окне PiP. Без этого чек-листа регресс возвращается при каждом следующем обновлении плеера, потому что новый разработчик на проекте про эти нюансы просто не знает.

сколько стоит добавить PiP в корпоративное приложение

Если PiP — часть нового мобильного приложения, а не доработка существующего, разработка под iOS у нас стартует от 500 000 руб. — сюда входит проектирование архитектуры плеера сразу с учётом переключения контента, а не как отдельная доделка после релиза. Если приложение уже работает и нужно добавить или починить PiP в существующем коде, стоимость считается индивидуально после короткого аудита — часто дешевле, чем полная переработка модуля видео с нуля, потому что меняется не весь плеер, а конкретные точки: аудиосессия, капабилити, делегат, источник контента. Актуальные условия и форматы работы — на странице тарифов.

❓ Частые вопросы

Работает ли Picture-in-Picture одинаково на iPhone и iPad?

Технически да, API общий для AVKit. Но на iPhone PiP появился только с iOS 14 в 2020 году, на iPad — ещё с 2015-го. Если у сотрудников старые iPhone на iOS 13 и ниже, PiP на них работать не будет.

Можно ли запустить PiP автоматически, без нажатия пользователем отдельной кнопки?

Да, через canStartPictureInPictureAutomaticallyFromInline = true — видео сворачивается само при уходе в фон. Но нужна активная аудиосессия категории .playback и включённый background mode, иначе автозапуск не сработает.

Почему PiP не тестируется в симуляторе Xcode?

Симулятор не поддерживает полноценный композитинг Picture-in-Picture — часть поведения там просто не воспроизводится. Проверять запуск и переключение контента нужно только на физических iPhone и iPad, желательно нескольких поколений.

Сколько стоит добавить PiP в готовое корпоративное приложение?

Зависит от текущей архитектуры плеера. Новая мобильная разработка с нуля у нас стартует от 500 000 руб.; доработка PiP в существующем приложении оценивается индивидуально после короткого аудита кода.

Нужно ли отдельное разрешение Apple для публикации приложения с PiP?

Отдельного согласования нет, но приложение обязано явно объявлять background mode «Audio, AirPlay, and Picture in Picture» и корректно обрабатывать переходы между состояниями — иначе модерация может отклонить сборку из-за нестабильного поведения.

Нужно мобильное приложение для бизнеса?
Подберём стек и свяжем с 1С — смета за 1 день.
Получить смету →
Читайте также
Услуги 1САренда 1САренда сервера 1СМобильная разработка

Не помогло? Опишите вашу ошибку — разберём
Ответим сразу, без звонков и заполнения анкет. Что не получилось, какая версия 1С, что уже пробовали — этого достаточно. Сложное передадим инженеру.

Или позвоните: +7 495 133-92-44 — в рабочее время с 9:00 до 19:00

Возврат к списку

Читайте также

  • Сколько стоит поддержка мобильного приложения после запуска
  • Как разработать IPTV-приложение: архитектура и запуск
  • как разработать приложение как delivery club: архитектура и опыт запуска

Остались вопросы? Нужна помощь?

Менеджеры компании с радостью ответят на ваши вопросы, произведут расчет стоимости услуг и подготовят индивидуальное коммерческое предложение.

Бесплатная консультация
 
Компания
О компании
Вакансии
Каталог
1С отчетность
Лицензии 1С
ТСД Клеверенс
ИТС
Тарифы ИТС
Наши решения
Аренда сервера
Сопровождение 1С
Сопровождение бухгалтерии
Системное администрирование
Аудит сайта
IT-аутсорсинг в Москве
Услуги по серверам
Аренда сервера 1С
Аренда 1С в облаке
Распознавание PDF (ПДФ) в 1С
+7 495 133 92 44
+7 495 133 92 44
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
sale@ukved.ru
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
2017 - © 2026
Политика конфиденциальности Оплата Поставка Возврат Оферта Карта сайта
ООО «ВЕД» · ИНН 7720299436 · ОГРН 1157746343920 · КПП 501801001
Аккредитованная ИТ-компания — проверить в реестре Минцифры по ИНН 7720299436
0

Корзина

Очистить корзину
Ваша корзина пуста
Исправить это просто: выберите в каталоге интересующий товар и нажмите кнопку «В корзину»
В каталог
Главная 0 Корзина Каталог Контакты Услуги Бренды Отзывы Карьера Компания Проекты Лицензии Документы Блог Тарифы Цены
Мы считаем посещения сайта с помощью Яндекс.Метрики. Запись ваших действий на странице (Вебвизор) включается только с вашего согласия. Нажимая «Принять», вы соглашаетесь с Политикой конфиденциальности и Согласием на обработку ПДн.