画中画 (Picture in Picture)

iOS9系统在iPad上支持多任务分屏和画中画视频播放,画中画视频播放就将视频播放窗口化,然后浮动在屏幕上,此时你可以使用其他APP。但是有限制:1、iOS9 2、iPad,此功能是在iPad上看电影,home返回后无意间发现的好玩的功能。
一、准备工作
1、最好确保iPad的“设置--通用--多任务--持续视频叠层”功能打开。
2、以下为Xcode的工程相关配置
a、设置Base SDK 为 “Latest iOS”。 
b、打开选项“target--Capabilities--Background Modes--Audio, AirPlay and Picture in Picture”。
c、确保APP的audio session使用正确的类型AVAudioSessionCategoryPlayback
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {AVAudioSession *session = [AVAudioSession sharedInstance];NSError *error = nil;[session setCategory:AVAudioSessionCategoryPlayback error:&error];return YES;
}

二、实现方式

 AVKit, AVFoundation, or WebKit 分别提供了一种实现方式。
1、简单方便快捷的实现方式使用AVKit提供的 AVPlayerViewController,定制了UI操作页面,比如进度条、播放暂停按钮等。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// Override point for customization after application launch.AVAudioSession *session = [AVAudioSession sharedInstance];NSError *error = nil;[session setCategory:AVAudioSessionCategoryPlayback error:&error];//AVKit提供的 AVPlayerViewControllerNSURL *movieURL = [[NSBundle mainBundle] URLForResource:@"samplemovie" withExtension:@"mov"];AVURLAsset *asset =[AVURLAsset assetWithURL:movieURL];AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:asset];AVPlayer* player = [[AVPlayer alloc] initWithPlayerItem:playerItem];AVPlayerViewController *playerCtr = [[AVPlayerViewController alloc] init];playerCtr.player = player;[playerCtr.player play];self.window.rootViewController = playerCtr;return YES;
}
2、如果你想定制播放页面,那就使用AV Foundation提供的AVPlayerLayer(具体用法请参考官方Demo,里面有AVPlayer和AVPlayerLayer的用法)和AVKit提供的 AVPictureInPictureController组合起来实现效果。具体代码请参考官方Swift版本和Objecttive-C版。
 3、使用 WebKit 提供的 WKWebView 也可以实现。
更多信息请阅读原文。

iOS9 画中画 Picture in Picture相关推荐

  1. iOS画中画Picture in Picture:你需要知道的9个知识点

    iOS9最后给我们带来了每个人期待已久的"多任务",Slider Over.Split View 和画中画(PiP),已经使iPad成为一个比之前更强大.更便利的工具.使你在工作中 ...

  2. iOS9画中画开发详解

    最近写一个基于AVPlayer的iPad视频播放器,可手势调节音量和进度,完成之后,想到iOS9的新特性,心血来潮想搞PIP,毕竟未来的视频类App,不支持PIP,都不好意思拿出来用了...后面链接上 ...

  3. 【TV Picture Quality - 05】TV PQ术语汇总

    A Aliasing: 混叠/混淆現象,通常发生在高频区域 ADRC: Adaptive Dynamic Range Coding,自适应动态范围编码 AMC: Auto Mode Change,自动 ...

  4. 如何在Office 2013或2016中带回Microsoft Office Picture Manager

    If you're using Microsoft Office 2013 or 2016, you may have noticed that the Microsoft Office Pictur ...

  5. VVC DRAP帧和EDRAP帧,STSA picture

    DRAP帧和EDRAP帧 标准文档中 D.9.4 Use of the dependent random access point (DRAP) indication SEI message A pi ...

  6. html picture属性,html5图片 srcset、sizes 属性和 picture 元素

    前言 关于图片img的响应属性srcset,和sizes及picture,很久之前看过,但是因为浏览器兼容原因,一直没有在项目中使用,但是最近发现,这几个属性兼容性还可以了,可以去caniuse中看一 ...

  7. html picture元素

    picture HTML <picture> 元素通过包含零或多个 <source> 元素和一个 <img> 元素来为不同的显示/设备场景提供图像版本.浏览器会选择 ...

  8. iPad开发-分屏、画中画(即多任务处理增强功能)

    公司需要要开发iPad的App,说需要支持分屏.画中画播放视频等操作. 分屏:两个App可以同时展示在界面上,效果如下: image.png 分屏的条件 1.必须是在iPad上,系统版本>=iO ...

  9. Android开发笔记(一百六十七)Android8.0的画中画模式

    前面的博文< Android开发笔记(一百五十九)Android7.0的分屏模式>介绍了Android7.0的多窗口特性,但是这个分屏的区域是固定的,要么在屏幕的上半部分,要么在屏幕的下半 ...

最新文章

  1. php设计是什么意思,php的设计模式是什么
  2. 一文剖析2020年最火十大物联网应用|IoT Analytics 年度重磅报告出炉!
  3. 网页的一般布局(标题和脚注100%,内容宽度固定宽度px)
  4. 网络路径无法访问问题的解决
  5. UOJ #588. 图图的旅行
  6. eval函数的工作原理
  7. mysql group by 别名_[转]为什么group by后面不能使用别名(除MySQL)
  8. 构建Spring微服务并对其进行Dockerize生产
  9. java并发编程(更新)
  10. 国产物联网操作系统崛起!
  11. Oracle 11g新特性密码大小写敏感问题
  12. WinForm两点注意的地方
  13. linux network 脚本,自动修改Linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件的脚本...
  14. 基于 EntityFramework、Autofac 的 UnitOfWork 框架(一)
  15. python数据结构之匿名函数lambda
  16. 基于STM32CUBE MX 的TM1640的使用例程
  17. Apple商务管理分发
  18. 迅投QMT量化交易系统介绍
  19. 小米(MUUI)备份文件使用MT管理器打开
  20. java spring登录验证_详解使用Spring Security进行自动登录验证

热门文章

  1. 简单RPG游戏创建角色
  2. python封装什么意思_python之封装
  3. Python元组字典集合
  4. 微软霸气收购动视暴雪,冲刺元宇宙驱动助力
  5. 王者荣耀苹果微信哪个服务器最强,王者荣耀:QQ区和微信区玩家们最大区别,每一条都太“真实”了...
  6. 出现这6个信号,领导要提拔你!看懂了升职加薪,看不懂错失良机
  7. i5 1135g7和i7 7700hq哪个好
  8. 年终心结,心绪的总结!
  9. js 字符串切割并返回字符串
  10. windows 服务器 服务端程序发送RST给客户端