iOS 9 分屏多工(3):畫中畫(PiP)快速入門

發表於2015-07-17

該文件包含:
第一部分:iOS 9 分屏多工–入門
第二部分:iOS 9 分屏多工–Slide Over & Split View快速入門
第三部分:iOS 9 分屏多工–畫中畫(PiP)快速入門


依據本章的指南在所支援的iPad上使用畫中畫(PiP)。

想要讓視訊播放支援畫中畫模式,確保你Xcode專案和App配置如下:

  • 設定Base SDK為“Latest iOS”,請參閱 App Distribution Guide 的 Setting the Base SDK 章節描述。
  • 在Capabilities中檢視專案的目標,將Background Modes的Audio and AirPlay勾選上。(未來Xcode更新,該選項被命名為Audio、AirPlay以及Picture in Picture)。
  • 確保你的應用程式的音訊會話採用了適當的類別,如 AVAudiOSessionCategoryPlayback

下一步,為視訊播放選擇合適的AVKit、AV Foundation或WebKit的類服務視訊播放。選擇取決於應用程式的特性和你想要提供的使用者體驗。

如果你使用AVKit 支援PiP功能,但要退出特定的畫中畫視訊,請將播放器檢視控制器的 allowsPictureInPicturePlayback 屬性設定為NO。

  • AVKit還提供了 AVPictureInPictureController 類,可以和AV Foundation 框架的 AVPlayerLayer 類一同使用。如果你想為視訊播放提供自己的檢視控制器和自定義使用者介面,可使用這個方法。
  • 如果你支援畫中畫這種方式,但要退出特定視訊畫中畫功能,請不要將視訊的AVPlayerLayer與AVPictureInPictureController物件關聯。只要你用播放層例項化一個畫中畫控制器,這個播放視訊層就有畫中畫的功能;選擇退出的方式不執行該例項化。
    WebKit框架提供了 WKWebView 類,它支援iOS 9的PiP功能。

如果你使用WebKit支援PiP功能,但要退出特定視訊的畫中畫。設定關聯web view 例項的allowsPictureInPictureMediaPlayback屬性為NO。(這個屬性在iOS中9的未來beta版提供)

如果你有一箇舊的應用程式,使用已棄用的 MPMoviePlayerViewController 或 MPMoviePlayerController 播放視訊,那你必須採用高階的iOS視訊播放框架來支援畫中畫。

重要:蘋果想讓畫中畫功能一直能被使用者操控,只有使用者明確請求畫中畫功能才響應。尤其是退到後臺時不能立即響應使用者喚起畫中畫功能,這樣的App會被App Store拒絕。

當使用者按壓Home鍵或觸發一個把他們帶入其他App的通知時,iOS 9自動將一個全屏播放的視訊轉到PiP播放。視訊播放使用該功能的要求如下:

  • 按照本章之前的描述那樣讓App支援畫中畫功能。
  • 使用檢視的檢視填充視窗的邊界來全屏播放視訊。

提示:使用者可以在禁用畫中畫自動喚起,通過設定 Settings > General > Multitasking > Persistent Video Overlay。如果你認為一切已設定妥當,但當你按下Home鍵時,發現你的視訊不會進入畫中畫,請檢查此項設定。

當App播放的視訊轉到畫中畫播放時,系統將管理視訊內容的呈現,而你的App會繼續在後臺執行。當你的應用程式在後臺執行,請確保丟棄不需要的資源,如檢視控制器、檢視、影象和資料快取。在這種情況下,你期望執行適當且必須的操作,如視訊合成、音訊處理、下載接下來播放的內容等操作,但你必須注意儘可能少地消耗資源。如果你的應用程式在後臺消耗太多的資源,系統將終止它。

相關文章