Есть ли способ ограничить функцию «картинка в картинке», чтобы она работала только внутри приложения и не сохранялась в фоновом режиме? - PullRequest
0 голосов
/ 05 октября 2018

Можно ли как-нибудь разрешить использование функции PiP, пока пользователь находится в приложении?

В идеале, пользователь может запускать PiP, но когда приложение работает в фоновом режиме, PiP закрывается и воспроизведение в фоновом режиме продолжается.

1 Ответ

0 голосов
/ 30 апреля 2019

Способ достижения этого заключается в использовании обратного вызова onUserLeaveHint() из Framework.

Пример, приведенный в документации, противоположен тому, что вы пытаетесь сделать, но просто переверните логическое значение .;)

Возможно, вы захотите включить логику, которая переключает активность в режим PIP вместо перехода в фоновый режим.Например, Google Maps переключается в режим PIP, если пользователь нажимает кнопку «Домой» или «Последние» во время навигации по приложению.Вы можете поймать этот случай, переопределив onUserLeaveHint ():

source: https://developer.android.com/guide/topics/ui/picture-in-picture

@Override
public void onUserLeaveHint () {
    if (iWantToBeInPipModeNow()) {
        enterPictureInPictureMode();
    }
}

То, что делает метод iWantToBeInPipModeNow(), действительно работает на 2-вас, ноВы можете перехватить это и выйти из PiP (если вы в нем).

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

...