Ios9-Multitasking-多任务处理一(悬浮视频)
2016-05-25 11:33
861 查看
Ios9-Multitasking-多任务处理一(悬浮视频)
记录每天成长的点点滴滴~~~条件,xcode7以后,ios9,对swift有一定了解
内容:多任务处理
三大特性:
1.pip---悬浮视频播放2.slideOver---滑动覆盖分屏,切换任务
3.slideView---分屏,呈现两个并行的应用
首先给大家介绍一下,pip,是三个特性中相对复杂的,全称AVPictureInPictureController
创建流程:
步骤一:首先自定义view,需要导入,AVKit、AVFoundation库,重写layerClass,具体看截图
步骤二:创建播放器(播放使用的是AVPlayer)
1.使用懒加载,创建player并添加kvo事件,监听播放状态
2.找到本地视频并调用自定义的player,进行播放.
步骤三:实现pip--AVPictureInPictureController
1.调用observeValueForKeyPath,进行判断处理
2.通过keyPath判断,创建status,保存AVPlayerItemStatus状态
3.最后在判断status是否与AVPlayerItemStatus.ReadyToPlay,状态相同
4.创建AVPictureInPictureController,并把自定义AVPlayerLayer加载到界面中,就大功告成了
请注意:iphone,目前是不支持该功能的,可以在ipad上运行.
1.如果是真机,运行程序后,点击home键,退到后台,可以看效果
2.如果是在模拟器上,点击command+shift+h,到后台就可以了
3.到后台之后,视频会继续播放,你也可以用鼠标\手进行拖动,不过只能在四个角
效果图附上:
模拟器中
后台中
拖动,不同的位置
点击视频,可以对视频进行处理
最后一张效果图,个人觉得,可能是最有用的用处了,你可以边看视频,边干其他的事情,图中,边播放视频,另一边打开了Safari
最后总结一下:
pip并不是支持所有的视频1.支持的有
AVKit
WebKit
AVFoundation
2.不支持的
MPMoviePlayerViewController
MPMoviePlayerController
pip的一些属性、代理等
1.控制public func startPictureInPicture()
public func stopPictureInPicture()
2.代理 AVPictureInPictureControllerDelegate
func pictureInPictureControllerWillStartPictureInPicture(pictureInPictureController:AVPictureInPictureController) {
print("will start")
}
func pictureInPictureControllerDidStartPictureInPicture(pictureInPictureController:AVPictureInPictureController) {
print("will stop")
}
3.pip属性
public var pictureInPicturePossible: Bool { get }
public var pictureInPictureActive: Bool { get }
今天就这样,写的不好,大家别喷,希望大家早日成为大神!!!
源码附上:
点击打开链接
相关文章推荐
- Apple Swift学习教程
- 买视频送图书-五月活动
- 介绍 Fedora 上的 Swift
- DVI 视频接口图文解析
- C#实现语音视频录制-附demo源码
- 编写C++程序使DirectShow进行视频捕捉
- AnyChat的视频会议程序实例详解
- C#调用mmpeg进行各种视频转换的类实例
- C#获取视频某一帧的缩略图的方法
- 基于jQuery的网页影音播放器jPlayer的基本使用教程
- 显示youtube视频缩略图和Vimeo视频缩略图代码分享
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift自定义iOS中的TabBarController并为其添加动画
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- Objective-C的内省(Introspection)用法小结
- PHP使用ffmpeg给视频增加字幕显示的方法
- PHP实现将视频转成MP4并获取视频预览图的方法
- C++实现优酷土豆去视频广告的方法