您的位置:首页 > 移动开发 > IOS开发

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 }

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

源码附上:

点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息