Ios9-Multitasking-多任务处理一(悬浮视频)

记录每天成长的点点滴滴~~~

条件,xcode7以后,ios9,对swift有一定了解

内容:多任务处理

三大特性:

1.pip---悬浮视频播放

2.slideOver---滑动覆盖分屏,切换任务

3.slideView---分屏,呈现两个并行的应用


首先给大家介绍一下,pip,是三个特性中相对复杂的,全称AVPictureInPictureController

创建流程:

步骤一:首先自定义view,需要导入,AVKit、AVFoundation库,重写layerClass,具体看截图

Ios9-Multitasking-多任务处理一(悬浮视频)_第1张图片

步骤二:创建播放器(播放使用的是AVPlayer)

1.使用懒加载,创建player并添加kvo事件,监听播放状态

Ios9-Multitasking-多任务处理一(悬浮视频)_第2张图片

2.找到本地视频并调用自定义的player,进行播放.

Ios9-Multitasking-多任务处理一(悬浮视频)_第3张图片

步骤三:实现pip--AVPictureInPictureController

1.调用observeValueForKeyPath,进行判断处理

2.通过keyPath判断,创建status,保存AVPlayerItemStatus状态

3.最后在判断status是否与AVPlayerItemStatus.ReadyToPlay,状态相同

4.创建AVPictureInPictureController,并把自定义AVPlayerLayer加载到界面中,就大功告成了

Ios9-Multitasking-多任务处理一(悬浮视频)_第4张图片

请注意:iphone,目前是不支持该功能的,可以在ipad上运行.

1.如果是真机,运行程序后,点击home键,退到后台,可以看效果

2.如果是在模拟器上,点击command+shift+h,到后台就可以了

3.到后台之后,视频会继续播放,你也可以用鼠标\手进行拖动,不过只能在四个角


效果图附上:

模拟器中

后台中

Ios9-Multitasking-多任务处理一(悬浮视频)_第5张图片


拖动,不同的位置

Ios9-Multitasking-多任务处理一(悬浮视频)_第6张图片
Ios9-Multitasking-多任务处理一(悬浮视频)_第7张图片

点击视频,可以对视频进行处理


最后一张效果图,个人觉得,可能是最有用的用处了,你可以边看视频,边干其他的事情,图中,边播放视频,另一边打开了Safari


Ios9-Multitasking-多任务处理一(悬浮视频)_第8张图片


最后总结一下:

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")

}

func pictureInPictureController(pictureInPictureController:AVPictureInPictureController, failedToStartPictureInPictureWithError error:NSError) {

print("will fail")

}

3.pip属性

public var pictureInPicturePossible: Bool { get }

public var pictureInPictureActive: Bool { get }

今天就这样,写的不好,大家别喷,希望大家早日成为大神!!!

附上:源码,请点击下载

Ios9-Multitasking-多任务处理一(悬浮视频) - 代码库 - CocoaChina_让移动开发更简单

你可能感兴趣的:(Ios9-Multitasking-多任务处理一(悬浮视频))