- 视频播放
- 视频截取
- 视频录制
- 视频压缩
1.视频播放
1.1 相关的两个框架:
iOS8.0 MediaPlayer
iOS9.0 AVFoundation
1.2 播放方式
iOS 8.0
- 有视图的 MPMoviePlayerViewController
- 无视图的 MPMoviePlayerController
iOS 9.0
1.3 MPMoviePlayerViewController
MPMoviePlayerViewController实现播放的步骤
- 获取资源路径
- 初始化播放器
- 进行播放 present
|
1.4 MPMoviePlayerController
MPMoviePlayerController实现播放的步骤
- 获取资源路径
- 初始化播放器
- 将player的view添加到当前控制器的view上,并设置frame
- 准备播放、开始播放
- 下一首
注意:player需要强引用
|
MPMoviePlayerController
当前控制器必须设置对player进行强引用
可以设置 player的样式 controlStyle
- MPMovieControlStyleNone // 没有控制器的按钮就是none
- MPMovieControlStyleEmbedded // 嵌入式的,且是默认的
- MPMovieControlStyleFullscreen // 全屏样式
- MPMovieControlStyleDefault = MPMovieControlStyleEmbedded // 默认样式
|
1.5 AVPlayerViewController
两个框架 :AVFoundation 和 AVKit
播放步骤
- 获取资源路径
- 初始化播放器
- 将playerVC的view添加到当前控制器的view上,并设置frame 或者 present出来playerVC
- 开始播放
|
|
1.6 播放下一曲
播放下一曲
- 实现方式:通知
- 接收的通知 key MPMoviePlayerPlaybackDidFinishReasonUserInfoKey,返回的数据是 MPMovieFinishReason(NSNumber)播放结束的原因,
- MPMovieFinishReasonPlaybackEnded 播放结束
- MPMovieFinishReasonPlaybackError 播放错误
- MPMovieFinishReasonUserExited 用户退出
- 判断视频是否是正常结束播放,判断reason的结束方式
- 设置 contentURL
- 进行播放
|
1.7 MPMoviePlayerController 和 MPMoviePlayerViewController 比较
共同点
|
异同点
- MPMoviePlayerViewController 自带视图的播放控制器,且是全屏显示;MPMoviePlayerController无视图,需要添加到当前的控制器view上且设置frame
- MPMoviePlayerController使用场景:朋友圈
- MPMoviePlayerController使用的时候控制器必须对其有一个强引用
- 原因:MPMoviePlayerController 在alloc init之后在viewDidLoad方法之后就会消失,必须让控制器对它有一个强引用
- MPMoviePlayerController可以设置controlStyle
- 播放方式不同:
- MPMoviePlayerViewController 需要present
- MPMoviePlayerController 调用 play播放
|
2.视频截取
相关框架:AVFoundationAVAssetImage
- 获取资源路径
- 包装 AVAsset
- 创建获取器 AVAssetImageGenerator
- 截取
|
结构体是不能放到数组中的
UIImage和CGImageRef的区别?
|
3.视频录制
更新中
4.视频压缩
更新中
多媒体技术—提高你APP的逼格!(一)
原文:http://www.cnblogs.com/wndqiangge/p/5467601.html