Skip to main content
Version: 8.5.0

Picture-in-Picture support

THEOplayer Flutter SDK supports native Picture-in-Picture on iOS, Android and Web platforms. However, there are some differences and limitations.

Android and iOS

Entering Picture-in-Picture (PiP) is possible through the THEOplayer.setAllowAutomaticPictureInPicture(bool) API.

This will not put the player into Picture-in-Picture mode immediately, but enables the player to enter PiP when the application moves to the background.

Necessary configurations on app-level

Android

Enable Picture-in-Picture support for your main Activity in the AndroidManifest.xml file.

<activity android:name=".MainActivity"
android:supportsPictureInPicture="true"
android:configChanges=
"screenSize|smallestScreenSize|screenLayout|orientation|..."
...

iOS

Enable Background Audio mode for your application target in XCode.

Limitations

  • Picture-in-Picture is only supported from Android O (Oreo, API level 26).
  • Picture-in-Picture is only supported from iOS 14.
  • In multi-player scenarios there can be only one player that has allowAutomaticPictureInPicture set to true. Failing to do so might lead to unpredictable behaviour.
  • On iOS paused player can not enter PiP mode.
  • Calling THEOplayer.setPresentationMode(PresentationMode.PIP) API to explicitly enter PiP mode doesn't work on iOS and Android.
    • This limitation is due to the differences on how native iOS and Android handles the PiP mode.
      • iOS moves the player into PiP, while keeping the ViewController on the screen.
      • Android moves the whole Activity into PiP.
    • Aligning these will be investigated in the next iterations of the THEOplayer Flutter SDK.
    • You can try use the go_home package to simulate "Home button press" on Android and iOS to trigger application backgrounding (which will start the automatic PiP mode).
      • NOTE: there could be issues in the App Stores with the way this plugin simulates the "Home button press", use it on your own risk.

Web

Entering Picture-in-Picture (PiP) is possible through the THEOplayer.setPresentationMode(PresentationMode.PIP) API.

Limitations

  • Picture-in-Picture is not supported in Firefox.
  • THEOplayer.setAllowAutomaticPictureInPicture(bool) API is not supported.