使用 Jetpack 子母畫面程式庫

子母畫面 (PiP) Jetpack 程式庫為 Android 應用程式開發人員提供簡化且穩健的解決方案,方便他們實作 PiP 功能,特別是媒體播放、視訊通訊和導覽應用程式。這個程式庫提供統一的 API,有助於消除樣板程式碼、常見的應用程式內錯誤,並提升子母畫面使用者體驗的整體品質。

PiP Jetpack 程式庫可解決 Android 生態系統中的幾項主要挑戰和不一致問題,進而簡化現有的 PiP API:

  • 作業系統碎片化:程式庫會自動處理不同 Android 版本間的子母畫面 API 呼叫差異,例如在 Android 12 之前使用 enterPictureInPictureMode,之後使用 isAutoEnterEnabled,因此開發人員不需要管理版本差異。
  • 錯誤的子母畫面參數:提供統一的解決方案,可正確設定子母畫面參數 (例如 setSourceRectHint),在媒體播放期間建立流暢的高品質動畫。
  • 統一的子母畫面狀態回呼:將 onPictureInPictureModeChangedonPictureInPictureUiStateChanged 合併為單一的統一回呼介面 (PictureInPictureDelegate.OnPictureInPictureEventListener),簡化狀態和 UI 管理作業。
  • 減少樣板程式碼:程式庫提供預先定義的 RemoteActions,適用於常見用途 (例如播放控制項和視訊通話動作),可減少重複的樣板程式碼。
  • 確保未來支援:更多子母畫面功能會透過 Jetpack 程式庫提供,讓採用者能輕鬆存取其他功能。

採用 Jetpack

如要採用 Jetpack 程式庫,請將現有的自訂子母畫面實作項目替換為 Jetpack 程式庫 API。導入作業的複雜度和成本會因應用程式目前的實作方式而異。

以下各節說明子母畫面的常見用途,以及必要的實作步驟:

應用程式會通知程式庫導覽列的啟用或停用狀態,並設定顯示比例。其餘部分由 Jetpack 程式庫處理。

主要差異:

  1. 應用程式端不必區分自動輸入和舊版輸入。
  2. 整合回呼介面。
  3. 新的 PictureInPictureParams 建構工具,可提供回溯相容性。

視訊通話

應用程式會將通話的有效或無效狀態告知程式庫,並設定長寬比。

主要差異:

  1. 應用程式端不必區分自動輸入和舊版輸入。
  2. 整合回呼介面。
  3. 新的 PictureInPictureParams 建構工具,可提供回溯相容性。
  4. 視訊通話的標準化動作圖示。

影片播放

Jetpack 程式庫提供可整合的播放器委派項目,方便您管理子母畫面啟用/停用狀態,並準確設定來源矩形提示。您也可以選擇加入預先定義的 RemoteAction 物件集,類似於視訊通話情境中使用的物件。

主要功能:

  1. 處理回溯相容性,無須檢查 OS 版本。
  2. 同步處理播放狀態和自動進入控制項。
  3. 使用 SourceRectHint 持續追蹤幾何圖形。