依据本章的指南在所支持的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框架提供了 AVPlayerViewController 类,它会为用户自动显示画中画按钮。
如果你使用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会继续在后台运行。当你的应用程序在后台运行,请确保丢弃不需要的资源,如视图控制器、视图、图像和数据缓存。在这种情况下,你期望执行适当且必须的操作,如视频合成、音频处理、下载接下来播放的内容等操作,但你必须注意尽可能少地消耗资源。如果你的应用程序在后台消耗太多的资源,系统将终止它。
都说程序员的工资高,却很少了解他们加班的痛苦,你是不是每次也在心里想,按时间折算下来这个工资都给少了,于是会想在心里呐喊,要么涨工资,要么涨工资,要么涨工资,为什么??因为不让我们加班,这是不可能的!!!
想要颠覆自己的工作模式吗?想要减少自己的加班时间吗?加入我们,和我们一起探寻属于我们程序员的自由模式吧!
一款针对程序员的原生APP,以共享知识技能为目的,以悬赏方式在线互动交互平台。
我们拥有高达近20人顶尖的技术团队,以及优秀的产品及运营团队。团队领军人物均在行业内有10年以上的丰富经验。
现在我们正在招募原始的参与英雄,您将同我们一起改变程序员的工作方式,改变程序员的世界!同时也会有丰厚的报酬。作为我们的原始的参与者,您将同我们一起体验这款程序员神器,您可以提出专业的建议,我们会虚心采纳。每一个人都会是英雄,而您就会是我们需要的英雄!同时您也可以邀请您的朋友一起参与这场英雄的招募互动。
我们不会耽误你太多时间,我们只需要您的专业看法,只要您从一个月内抽出1个小时,以后您每天都可以节省两个小时,一切都是为了我们自己!
来?还是不来?
接头人暗号:1955246408 (QQ)