子母畫面

子母畫面 (PiP) 是一種多視窗模式,適用於播放全螢幕影片的活動。這個模式可讓使用者透過固定在畫面角落的小視窗觀看影片,同時繼續在主要畫面使用應用程式或瀏覽內容。

圖 1:即使使用者未在應用程式中,也能繼續觀看影片

重點整理

  • 確認活動處於子母畫面模式時,UI 元素皆為隱藏狀態且影片會繼續播放。
  • 停用非影片內容的流暢大小調整功能。
  • 為了提供最佳使用者體驗,請盡可能讓影片播放活動的 UI 保持精簡。
  • 請勿顯示任何影片以外的內容。

為應用程式新增子母畫面支援

根據預設,系統不會自動支援應用程式的子母畫面支援功能,需要宣告才能支援這項功能。

子母畫面視窗會顯示在系統所選的畫面最頂層角落。

控制選項

根據預設,Android 會提供子母畫面控制項,用於關閉視窗、將視窗展開至全螢幕、設定和媒體播放。應用程式可以新增自訂動作和適當的圖示素材資源,讓使用者與 PiP 內容互動。

使用者只要輕觸行動裝置上的視窗,或透過電視遙控器選取選單,就能從子母畫面視窗選單顯示這些控制項。如果應用程式有進行中的媒體工作階段,也會顯示播放、暫停、下一首和上一首的控制項。請參閱這篇文章,瞭解如何新增這些控制項。

在子母畫面模式下,活動會顯示在小型視窗中。在這個模式下,使用者無法與應用程式的其他 UI 元素互動,且可能難以查看子母畫面視窗中小型 UI 元素的細節。

預設的 PiP 控制項。
自訂 PiP 控制項範例。

用量

允許使用者在應用程式中繼續觀看影片,並在裝置上繼續觀看。應用程式可控制目前活動進入子母畫面模式的時機,例如離開目前檢視畫面或向上滑動返回主畫面。

以下列舉幾個可能的動作:

  • 如果使用者輕觸主畫面按鈕或向上滑動回到主畫面,活動就能進入子母畫面模式。這是 Google 地圖在使用者執行其他活動的同時繼續顯示路線指引的方式。

    圖 4:使用子母畫面繼續路徑指引體驗
  • 當使用者離開影片來瀏覽其他內容時,應用程式可將影片移至子母畫面模式。

  • 當使用者看完一集影片內容時,應用程式可將影片切換至子母畫面模式。主要畫面會顯示下一集系列影片的宣傳或摘要資訊。

  • 使用者觀看影片時,應用程式可讓使用者將其他內容排入佇列。影片會繼續在子母畫面模式下播放,主要畫面則顯示內容選取活動。

使用互動模式,讓觀看體驗更完美,但不要造成干擾。舉例來說,如果影片是某集內容的結尾,當使用者離開主畫面時,進入子母畫面模式就需要額外的使用者操作,才能返回並停止播放,或瀏覽小型控制項。

在應用程式中,有可能使用者在主要畫面瀏覽內容時選取新影片,而同時也有影片播放活動在子母畫面模式下進行。在這種情況下,請以全螢幕模式在現有播放活動中播放新影片,而不要啟動新活動,避免造成使用者混淆。

互動模式

使用者可以將子母畫面視窗拖曳到其他位置。

輕觸一下視窗,即可顯示全螢幕切換鈕、關閉按鈕、設定按鈕,以及應用程式提供的自訂動作 (例如播放控制項)。

圖 5:預設的 PiP 控制項

輕觸兩下視窗,即可在目前的子母畫面大小和最大或最小子母畫面大小之間切換,例如輕觸兩下已最大化的視窗,即可將視窗縮到最小,反之亦然。

圖 6:輕觸兩下切換子母畫面的最小和最大大小

將視窗拖曳到左側或右側邊緣,即可隱藏視窗。如要取消隱藏視窗,請輕觸隱藏視窗的可見部分或將視窗拖曳出來。

圖 7:PiP 已儲存

使用雙指撥動方式進行縮放,調整子母畫面視窗的大小。

向下滑動子母畫面,即可移除視窗。

圖 8:向下滑動

轉場

流暢進入子母畫面動畫

使用者觸發子母畫面模式後,目前的活動會從全螢幕縮小為小型視窗,繼續顯示內容,但不會疊加任何 UI。

Android 12 大幅改善了全螢幕和子母畫面視窗之間的動畫轉場效果。我們強烈建議您導入所有適用的變更;完成後,這些變更會自動調整為折疊式裝置和平板電腦等大螢幕,無須額外採取任何行動。

如果應用程式未納入這些適用的更新,PiP 轉場效果仍可正常運作,但動畫效果會比較粗糙。舉例來說,從全螢幕切換至 PiP 模式時,PiP 視窗會在轉換期間消失,然後在轉換完成後重新顯示。

從 Android 12 開始,PictureInPictureParams.Builder.setAutoEnterEnabled(true) 標記可在使用手勢操作模式時,為子母畫面模式中的影片內容提供更流暢的動畫轉場效果,例如從全螢幕畫面向上滑動至主畫面。如果您的應用程式屬於 ENTERTAINMENTCOMMUNICATIONVIDEO_PLAYER 應用程式類別,建議您採用這種做法。

如果您的應用程式未納入這項變更,使用手勢導覽的子母畫面轉場功能仍可正常運作,但動畫效果較不精緻。影片 1 顯示了這個例子:視窗會縮小至應用程式圖示並消失,然後在轉換完成時重新顯示。

當 PiP 未正確實作 setAutoEnterEnabled 時,轉場效果會較不流暢
應用程式新增 setAutoEnterEnabled,提供精緻的轉場體驗。

流暢的影片視覺效果

在 Android 8.0 中推出子母畫面功能時,sourceRectHint 會指出在轉換至子母畫面後可見的活動區域,例如影片播放器中的影片檢視區域邊界。從 Android 12 開始,作業系統會使用 sourceRectHint 在進入和退出子母畫面模式時,實作更流暢的動畫。

如果應用程式未提供適當的 sourceRectHint,子母畫面轉場效果仍可正常運作,但動畫效果會比較粗糙。舉例來說,影片 3 顯示了從全螢幕切換至子母畫面模式的較不精緻示例:全螢幕視窗縮小為子母畫面視窗後,會先覆蓋黑色疊加層,然後再顯示影片。

影片 3:當 PiP 未正確實作 sourceRectHint 時,轉場體驗較不順暢

如要查看 sourceRectHint 正確導入時 PiP 動畫的樣貌,請參閱前一個部分的影片 2。

如要啟用精緻的轉場體驗,請參考 Android Kotlin PictureInPicture 範例

如要進一步瞭解如何導入子母畫面,請參閱子母畫面開發人員說明文件