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 Apps zur Medienwiedergabe, Videokommunikation und Navigation. 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-Benutzerfreundlichkeit zu verbessern.

Die Jetpack-Bibliothek für den Bild-im-Bild-Modus vereinfacht die vorhandenen PiP-APIs, 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 gängige 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 typische Anwendungsfälle für den Bild-im-Bild-Modus 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 alles Weitere.

Wichtige Unterschiede

  1. Auf App-Seite muss nicht zwischen „Auto-Enter“ und „Legacy-Enter“ 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 „Auto-Enter“ und „Legacy-Enter“ 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 integrieren können, um die Aktivierung oder Deaktivierung von BiB zu verwalten und den Quellrechteck-Hinweis genau festzulegen. Sie können auch ein vordefiniertes Set von RemoteAction-Objekten auswählen, ähnlich denen, die in Videokonferenzszenarien verwendet werden.

Wichtige Features:

  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.