Jetpack-Bibliothek „Bild im Bild“ verwenden

Die Jetpack-Bibliothek für Bild-im-Bild (BiB) bietet eine optimierte und robuste Lösung für Android-App-Entwickler, um die BiB-Funktionalität zu implementieren, insbesondere für Medienwiedergabe-, Videokommunikations- und Navigations-Apps. Durch die Bereitstellung einer einheitlichen API trägt die Bibliothek dazu bei, Boilerplate-Code und häufige In-App-Fehler zu vermeiden und die Gesamtqualität der PiP-Nutzerfreundlichkeit zu verbessern.

Die Jetpack-Bibliothek für den Bild-im-Bild-Modus erleichtert die Verwendung der vorhandenen APIs für den Bild-im-Bild-Modus, indem sie mehrere wichtige Herausforderungen und Inkonsistenzen im Android-Ökosystem angeht:

  • OS-Fragmentierung: Die Bibliothek verarbeitet automatisch Unterschiede bei PiP-API-Aufrufen in verschiedenen Android-Versionen, z. B. die Verwendung von enterPictureInPictureMode vor Android 12 und isAutoEnterEnabled danach. Entwickler müssen sich also nicht um Versionsunterschiede kümmern.
  • Falsche BiB-Parameter: Es bietet eine einheitliche Lösung zum korrekten Festlegen von BiB-Parametern, z. B. setSourceRectHint, um während der Medienwiedergabe flüssige und hochwertige Animationen zu erstellen.
  • Einheitliche PiP-Status-Callbacks: onPictureInPictureModeChanged und onPictureInPictureUiStateChanged werden in einer einzigen, einheitlichen Callback-Schnittstelle (PictureInPictureDelegate.OnPictureInPictureEventListener) zusammengefasst, um die Status- und UI-Verwaltung zu vereinfachen.
  • Weniger Boilerplate-Code: Die Bibliothek reduziert die Menge an sich wiederholendem Boilerplate-Code, indem sie vordefinierte Sets von RemoteActions für häufige Anwendungsfälle wie Wiedergabesteuerung und Videoanrufaktionen bietet.
  • Zukunftssicherheit: Weitere BiB-Funktionen werden über die Jetpack-Bibliothek bereitgestellt, sodass Nutzer mit minimalem bis gar keinem Aufwand auf zusätzliche Funktionen zugreifen können.

Jetpack einführen

Wenn Sie die Jetpack-Bibliothek verwenden möchten, müssen Sie Ihre vorhandene benutzerdefinierte PiP-Implementierung durch die Jetpack-Bibliotheks-APIs ersetzen. Die Komplexität und die Kosten der Umstellung hängen von der aktuellen Implementierung der App ab.

In den folgenden Abschnitten werden einige der typischen Anwendungsfälle für BiB und die erforderlichen Implementierungsschritte beschrieben:

Die App informiert die Bibliothek über den aktiven oder inaktiven Status der Navigation und legt das Seitenverhältnis fest. Die Jetpack-Bibliothek übernimmt den Rest.

Wichtige Unterschiede:

  1. Auf App-Seite muss nicht zwischen der automatischen und der manuellen Eingabe unterschieden werden.
  2. Konsolidierte Callback-Schnittstellen.
  3. Neuer PictureInPictureParams-Builder für die Abwärtskompatibilität.

Videoanruf

Die App informiert die Bibliothek über den aktiven oder inaktiven Status des Anrufs und legt das Seitenverhältnis fest.

Wichtige Unterschiede:

  1. Auf App-Seite muss nicht zwischen der automatischen und der manuellen Eingabe unterschieden werden.
  2. Konsolidierte Callback-Schnittstellen.
  3. Neuer PictureInPictureParams-Builder für die Abwärtskompatibilität.
  4. Standardisierte Aktionssymbole für Videoanrufe.

Videowiedergabe

Die Jetpack-Bibliothek bietet Player-Delegates, die Sie einbinden können, um die Aktivierung oder Deaktivierung des BiB-Modus zu verwalten und den Hinweis zum Quellrechteck genau festzulegen. Sie können auch ein vordefiniertes Set von RemoteAction-Objekten auswählen, ähnlich denen, die in Videokonferenzszenarien verwendet werden.

Wichtige Funktionen:

  1. Sorgt für Abwärtskompatibilität. Es ist keine Prüfung der Betriebssystemversion erforderlich.
  2. Synchronisierung des Wiedergabestatus und automatische Eingabe.
  3. Kontinuierliches Geometrie-Tracking mit SourceRectHint.