Loading docs/html/preview/features/picture-in-picture.jd +29 −7 Original line number Original line Diff line number Diff line Loading @@ -150,11 +150,20 @@ public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) { Picture-in-picture</h2> Picture-in-picture</h2> <p>When your activity switches to PIP, the system considers the activity in a <p>When your activity switches to PIP, the system considers the activity in a paused state, and calls your activity's <code>onPause()</code> method. Video paused state, and calls your activity's {@link android.app.Activity#onPause playback should not be paused and should continue playing if the activity is onPause()} method. Video playback should not be paused and should continue paused due to PIP mode. Check for PIP in your activity's playing if the activity is paused due to PIP mode.</p> <code>onPause()</code> method and handle playback appropriately, for example:</p> <p>In Android N, you should pause and resume video playback when the system calls your activity's {@link android.app.Activity#onStop onStop()} and {@link android.app.Activity#onStart onStart()}. By doing this, you can avoid having to check if your app is in PIP mode in {@link android.app.Activity#onPause onPause()} and explicitly continuing playback.</p> <p>If you have to pause playback in your {@link android.app.Activity#onPause onPause()} implementation, check for PIP mode by calling {@code isInPictureInPictureMode()} and handle playback appropriately, for example:</p> <pre> <pre> @Override @Override Loading @@ -170,7 +179,8 @@ public void onPause() { </pre> </pre> <p>When your activity switches out of PIP mode back to full-screen mode, the <p>When your activity switches out of PIP mode back to full-screen mode, the system resumes your activity and calls your <code>onResume()</code> method.</p> system resumes your activity and calls your {@link android.app.Activity#onResume onResume()} method.</p> <h2 id="single_playback">Using a Single Playback Activity for <h2 id="single_playback">Using a Single Playback Activity for Picture-in-picture</h2> Picture-in-picture</h2> Loading Loading @@ -210,4 +220,16 @@ in any area that can be obscured by the PIP window.</p> <p>When an activity is in PIP mode, by default it doesn't get input focus. To <p>When an activity is in PIP mode, by default it doesn't get input focus. To receive input events while in PIP mode, use receive input events while in PIP mode, use <code>MediaSession.setMediaButtonReceiver()</code>.</p> {@link android.media.session.MediaSession#setCallback MediaSession.setCallback()}. For more information on using {@link android.media.session.MediaSession#setCallback setCallback()} see <a href="{@docRoot}training/tv/playback/now-playing.html">Displaying a Now Playing Card</a>.</p> <p>When your app is in PIP mode, video playback in the PIP window can cause audio interference with another app, such as a music player app or voice search app. To avoid this, request audio focus when you start playing the video, and handle audio focus change notifications, as described in <a href="{@docRoot}training/managing-audio/audio-focus.html">Managing Audio Focus</a>. If you receive notification of audio focus loss when in PIP mode, pause or stop video playback.</p> Loading
docs/html/preview/features/picture-in-picture.jd +29 −7 Original line number Original line Diff line number Diff line Loading @@ -150,11 +150,20 @@ public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) { Picture-in-picture</h2> Picture-in-picture</h2> <p>When your activity switches to PIP, the system considers the activity in a <p>When your activity switches to PIP, the system considers the activity in a paused state, and calls your activity's <code>onPause()</code> method. Video paused state, and calls your activity's {@link android.app.Activity#onPause playback should not be paused and should continue playing if the activity is onPause()} method. Video playback should not be paused and should continue paused due to PIP mode. Check for PIP in your activity's playing if the activity is paused due to PIP mode.</p> <code>onPause()</code> method and handle playback appropriately, for example:</p> <p>In Android N, you should pause and resume video playback when the system calls your activity's {@link android.app.Activity#onStop onStop()} and {@link android.app.Activity#onStart onStart()}. By doing this, you can avoid having to check if your app is in PIP mode in {@link android.app.Activity#onPause onPause()} and explicitly continuing playback.</p> <p>If you have to pause playback in your {@link android.app.Activity#onPause onPause()} implementation, check for PIP mode by calling {@code isInPictureInPictureMode()} and handle playback appropriately, for example:</p> <pre> <pre> @Override @Override Loading @@ -170,7 +179,8 @@ public void onPause() { </pre> </pre> <p>When your activity switches out of PIP mode back to full-screen mode, the <p>When your activity switches out of PIP mode back to full-screen mode, the system resumes your activity and calls your <code>onResume()</code> method.</p> system resumes your activity and calls your {@link android.app.Activity#onResume onResume()} method.</p> <h2 id="single_playback">Using a Single Playback Activity for <h2 id="single_playback">Using a Single Playback Activity for Picture-in-picture</h2> Picture-in-picture</h2> Loading Loading @@ -210,4 +220,16 @@ in any area that can be obscured by the PIP window.</p> <p>When an activity is in PIP mode, by default it doesn't get input focus. To <p>When an activity is in PIP mode, by default it doesn't get input focus. To receive input events while in PIP mode, use receive input events while in PIP mode, use <code>MediaSession.setMediaButtonReceiver()</code>.</p> {@link android.media.session.MediaSession#setCallback MediaSession.setCallback()}. For more information on using {@link android.media.session.MediaSession#setCallback setCallback()} see <a href="{@docRoot}training/tv/playback/now-playing.html">Displaying a Now Playing Card</a>.</p> <p>When your app is in PIP mode, video playback in the PIP window can cause audio interference with another app, such as a music player app or voice search app. To avoid this, request audio focus when you start playing the video, and handle audio focus change notifications, as described in <a href="{@docRoot}training/managing-audio/audio-focus.html">Managing Audio Focus</a>. If you receive notification of audio focus loss when in PIP mode, pause or stop video playback.</p>