子母畫面 (PiP) Jetpack 程式庫為 Android 應用程式開發人員提供簡化且穩健的解決方案,方便他們實作 PiP 功能,特別是媒體播放、視訊通訊和導覽應用程式。這個程式庫提供統一的 API,有助於消除樣板程式碼、常見的應用程式內錯誤,並提升子母畫面使用者體驗的整體品質。
PiP Jetpack 程式庫可解決 Android 生態系統中的幾項主要挑戰和不一致問題,進而簡化現有的 PiP API:
- 作業系統碎片化:程式庫會自動處理不同 Android 版本間的子母畫面 API 呼叫差異,例如在 Android 12 之前使用
enterPictureInPictureMode,之後使用isAutoEnterEnabled,因此開發人員不需要管理版本差異。 - 錯誤的子母畫面參數:提供統一的解決方案,可正確設定子母畫面參數 (例如
setSourceRectHint),在媒體播放期間建立流暢的高品質動畫。 - 統一的子母畫面狀態回呼:將
onPictureInPictureModeChanged和onPictureInPictureUiStateChanged合併為單一的統一回呼介面 (PictureInPictureDelegate.OnPictureInPictureEventListener),簡化狀態和 UI 管理作業。 - 減少樣板程式碼:程式庫提供預先定義的
RemoteActions,適用於常見用途 (例如播放控制項和視訊通話動作),可減少重複的樣板程式碼。 - 確保未來支援:更多子母畫面功能會透過 Jetpack 程式庫提供,讓採用者能輕鬆存取其他功能。
採用 Jetpack
如要採用 Jetpack 程式庫,請將現有的自訂子母畫面實作項目替換為 Jetpack 程式庫 API。導入作業的複雜度和成本會因應用程式目前的實作方式而異。
以下各節說明子母畫面的常見用途,以及必要的實作步驟:
導覽
應用程式會通知程式庫導覽列的啟用或停用狀態,並設定顯示比例。其餘部分由 Jetpack 程式庫處理。
主要差異:
- 應用程式端不必區分自動輸入和舊版輸入。
- 整合回呼介面。
- 新的
PictureInPictureParams建構工具,可提供回溯相容性。
視訊通話
應用程式會將通話的有效或無效狀態告知程式庫,並設定長寬比。
主要差異:
- 應用程式端不必區分自動輸入和舊版輸入。
- 整合回呼介面。
- 新的
PictureInPictureParams建構工具,可提供回溯相容性。 - 視訊通話的標準化動作圖示。
影片播放
Jetpack 程式庫提供可整合的播放器委派項目,方便您管理子母畫面啟用/停用狀態,並準確設定來源矩形提示。您也可以選擇加入預先定義的 RemoteAction 物件集,類似於視訊通話情境中使用的物件。
主要功能:
- 處理回溯相容性,無須檢查 OS 版本。
- 同步處理播放狀態和自動進入控制項。
- 使用
SourceRectHint持續追蹤幾何圖形。