«Картинка в картинке» (PiP) — это тип многооконного режима, предназначенный для действий, при которых воспроизводится полноэкранное видео. Он позволяет пользователю смотреть видео в небольшом окне, закрепленном в углу экрана, одновременно перемещаясь между приложениями или просматривая контент на главном экране.
Вынос
- Убедитесь, что элементы пользовательского интерфейса скрыты и воспроизведение видео продолжается, когда действие происходит в режиме «картинка в картинке».
- Отключите плавное изменение размера для невидеоконтента.
- Действия по воспроизведению видео с минимальным пользовательским интерфейсом обеспечивают наилучшее взаимодействие с пользователем.
- Не показывайте ничего, кроме видеоконтента.
Добавьте поддержку «картинка в картинке» в свое приложение.
По умолчанию система не поддерживает автоматически PiP для приложений, и ее необходимо объявить для поддержки этой функции.
Окно PiP появляется в самом верхнем слое экрана, в углу, выбранном системой.
Элементы управления
По умолчанию Android предоставляет элементы управления PiP для закрытия окна, его обратного развертывания в полноэкранный режим, настройки и воспроизведения мультимедиа. Ваше приложение может добавлять настраиваемые действия и соответствующие ресурсы значков, чтобы пользователи могли взаимодействовать с содержимым PiP.
Пользователь может отобразить эти элементы управления из меню окна PiP, коснувшись окна на мобильном устройстве или выбрав меню на пульте телевизора. Если в приложении есть активный сеанс мультимедиа , также отображаются элементы управления воспроизведением, паузой, следующим и предыдущим. Прочтите о том, как добавить эти элементы управления .
В режиме PiP ваша активность отображается в небольшом окне. В этом режиме пользователи не могут взаимодействовать с другими элементами пользовательского интерфейса вашего приложения, а детали мелких элементов пользовательского интерфейса в окне PiP могут быть трудно различимы.
Использование
Разрешите пользователям продолжать смотреть видео не только в вашем приложении, но и на своем устройстве. Ваше приложение контролирует, когда текущее действие переходит в режим «картинка в картинке» — это может быть такое взаимодействие, как выход из текущего представления или проведение пальцем вверх, чтобы вернуться домой.
Вот несколько примеров возможных действий:
Действие может перейти в режим PiP, когда пользователь нажимает кнопку «Домой» или проводит вверх по экрану «Домой». Таким образом, Карты Google продолжают отображать маршруты, пока пользователь одновременно выполняет другое действие.
Ваше приложение может переместить видео в режим «картинка в картинке», когда пользователь возвращается от видео для просмотра другого контента.
Ваше приложение может переключить видео в режим PiP, пока пользователь смотрит конец эпизода контента. На главном экране отображается рекламная или сводная информация о следующем эпизоде сериала.
Ваше приложение может предоставить пользователям возможность ставить в очередь дополнительный контент во время просмотра видео. Видео продолжает воспроизводиться в режиме «картинка в картинке», а на главном экране отображается действие выбора контента.
Используйте модель взаимодействия, которая дополняет впечатления от просмотра, но не мешает. Например, если видео находится в конце эпизода контента, ввод PiP при выходе с главного экрана потребует дополнительных действий пользователя для возврата и остановки воспроизведения или перемещения по небольшим элементам управления.
В вашем приложении пользователь может выбрать новое видео при просмотре контента на главном экране, в то время как действие воспроизведения видео происходит в режиме PiP. Воспроизводите новое видео в существующем действии воспроизведения в полноэкранном режиме вместо запуска нового действия, которое может сбить с толку пользователя.
Шаблоны взаимодействия
Пользователи могут перетащить окно PiP в другое место.
Коснитесь окна один раз, чтобы отобразить переключатель полноэкранного режима, кнопку закрытия, кнопку настроек и настраиваемые действия, предоставляемые вашим приложением (например, элементы управления воспроизведением).
Дважды коснитесь окна, чтобы переключиться между текущим размером PiP и максимальным или минимальным размером PiP — например, двойное касание развернутого окна сворачивает его, и обратное также верно.
Скройте окно, перетащив его к левому или правому краю. Чтобы удалить окно, коснитесь видимой части спрятанного окна или перетащите его.
Измените размер окна PiP, используя масштабирование.
Проведите PiP вниз, чтобы удалить окно.
Переходы
Плавный вход в анимацию PiP
Пользователь, запускающий режим PiP, приводит к тому, что текущее действие сжимается из полноэкранного режима в маленькое окно, в котором содержимое продолжает отображаться без наложения какого-либо пользовательского интерфейса.
В Android 12 были внесены значительные косметические улучшения в анимированные переходы между полноэкранным режимом и окнами PiP. Мы настоятельно рекомендуем внести все применимые изменения; как только вы это сделаете, эти изменения автоматически масштабируются на большие экраны, такие как складные устройства и планшеты, без каких-либо дополнительных действий.
Если ваше приложение не включает эти применимые обновления, переходы PiP по-прежнему работают, но анимация менее совершенна. Например, переход из полноэкранного режима в режим «картинка в картинке» может привести к исчезновению окна «картинка в картинке» во время перехода, прежде чем оно появится снова после завершения перехода.
Начиная с Android 12, флаг PictureInPictureParams.Builder.setAutoEnterEnabled(true)
обеспечивает гораздо более плавную анимацию при переходе к видеоконтенту в режиме «картинка в картинке» с использованием навигации с помощью жестов — например, при пролистывании вверх из полноэкранного режима. Мы рекомендуем это сделать, если ваше приложение попадает в категорию приложений ENTERTAINMENT
, COMMUNICATION
или VIDEO_PLAYER
.
Если ваше приложение не включает это изменение, переходы PiP с навигацией с помощью жестов по-прежнему работают, но анимация менее совершенна. Видео 1 показывает пример этого: окно сжимается до значка приложения и исчезает, а затем снова появляется после завершения перехода.
Плавное видеоизображение
Когда мы представили PiP в Android 8.0, sourceRectHint
указывал область действия, которая видна после перехода в PiP — например, границы просмотра видео в видеоплеере. Начиная с Android 12, ОС использует sourceRectHint
для реализации более плавной анимации как при входе в режим PiP, так и при выходе из него.
Если ваше приложение не предоставляет правильный sourceRectHint
, переходы PiP по-прежнему работают, но анимация менее совершенна. Например, видео 3 демонстрирует менее совершенный пример перехода из полноэкранного режима в режим «картинка в картинке»: после того, как полноэкранное окно сжимается до окна «картинка в картинке», оно покрывается черным наложением, прежде чем снова показать видео.
sourceRectHint
Чтобы увидеть пример того, как выглядит анимация PiP при правильной реализации sourceRectHint
, см. видео 2 в предыдущем разделе.
Обратитесь к образцу Android Kotlin PictureInPicture в качестве справочного материала по обеспечению более качественного перехода.
Дополнительные сведения о реализации PiP см. в документации разработчика «Картинка в картинке» .