android / media-samples

Multiple samples showing the best practices in media APIs on Android (audio, video, etc.).
Apache License 2.0
1.26k stars 740 forks source link

PIP issues #85

Open iostyle opened 1 year ago

iostyle commented 1 year ago

Start a singleTask activity will show in PIP, when PIP used.

https://user-images.githubusercontent.com/22219146/191489677-d9a7bd1a-6902-4a79-91ea-0eba4aaf42b6.mp4

iostyle commented 1 year ago

When PIP activity and other singleTask activity in the same task.

BambooXiu commented 1 year ago

yes, I have met this error too, that is very disappointed ! So, DO NOT USE PIP !!!

zhangxiaofan918 commented 1 year ago

Did pip solve this problem? I encountered the same problem

BambooXiu commented 1 year ago

Unfortunately not yet

mohsenoid commented 1 year ago

I had the same issue and this answer looks promising, https://stackoverflow.com/a/54086060/2359762 Have you tried taskAffinity instead of singleTask?

opLW commented 1 year ago

When starting PIP Activity normally, PIP activity will launch on a new Task which taskAffinity is same as application packagename. So we have two Task with same taskAffinity. Then if you start an activity with singleTask mode, it will launch on Task just create for PIP activity.

I solved this problem by setting a special taskAffinity for PIP activity. Setting Special taskAffinity can launch PIP activity on a independent Task. Then activity with singleTask mode will not be launched on Task that PIP Activity was in.

zhangxiaofan918 commented 11 months ago

When starting PIP Activity normally, PIP activity will launch on a new Task which taskAffinity is same as application packagename. So we have two Task with same taskAffinity. Then if you start an activity with singleTask mode, it will launch on Task just create for PIP activity.

I solved this problem by setting a special taskAffinity for PIP activity. Setting Special taskAffinity can launch PIP activity on a independent Task. Then activity with singleTask mode will not be launched on Task that PIP Activity was in.

However, this will produce multiple windows on the task list, which cannot be satisfied for applications such as video conferencing

focuseyes360 commented 4 months ago

In order to solve this problem, i add task affinity to the support pip activity in the manifest.xml. This causes another problem, when press home key ,the activity is background ,and user click icon from the home desk, the app start and go to the main task(the app default package name task), not the support pip activity. I foreach the app tasks, find the task containing the support pip activity, and call " task.moveToFront();" to bringfront the activity , the activity go in pip mode normally. I go to the activity normal mod and finish the activity. After that , I click the button,and go to the support pip activity again, this time ,the system log shows the activity go to pip mode ,but the min window not shown. million seconds later, the system log shows the app is in background. The above can be reproduced in android14 system.
Finally, i change the called code from "task.moveToFront();" to " activityManager.moveTaskToFront()", the bad result above is gone. I don't know why, just guess that , "task.moveToFront();"maybe cause PIP mode out of time sequence.