Есть ли способ ограничить функцию "картинка в картинке", чтобы она работала только внутри приложения и не сохранялась в фоновом режиме?
Есть ли способ разрешить функционирование PiP только тогда, когда пользователь находится внутри приложения?
В идеале, пользователь может запускать PiP, но когда он запускает фоновое приложение, PiP закрывается, и фоновое воспроизведение продолжается.
0 ответов
Способ достижения этого заключается в использовании onUserLeaveHint()
обратный вызов из рамок.
Пример, приведенный в документации, противоположен тому, что вы пытаетесь сделать, но просто переверните логическое значение.;)
Возможно, вы захотите включить логику, которая переключает активность в режим PIP вместо перехода в фоновый режим. Например, Google Maps переключается в режим PIP, если пользователь нажимает кнопку "Домой" или "Последние" во время навигации по приложению. Вы можете поймать этот случай, переопределив onUserLeaveHint():
источник: https://developer.android.com/guide/topics/ui/picture-in-picture
@Override
public void onUserLeaveHint () {
if (iWantToBeInPipModeNow()) {
enterPictureInPictureMode();
}
}
Какой метод iWantToBeInPipModeNow()
Действительно, это действительно up-2-you, но вы можете перехватить это и выйти из PiP (если вы в нем).
Вы также можете убедиться, что ваши методы возврата / остановки также обеспечивают правильное обращение с PiP для вашего варианта использования.