目录
图片的下载与存储
常用开源框架:SDWebImage、FastImageCache、LKImageKit
使用SDWebImage
[self.rightImageView sd_setImageWithURL:
[NSURL URLWithString:listItem.picUrl]
completed:^(
UIImage * _Nullable image,
NSError * _Nullable error,
SDImageCacheType cacheType,
NSURL * _Nullable imageURL) {
}];
IOS系统音视频框架
·AVKit(IOS8+)
·AVPlayerController
·较高级的接口
·创建全部视图层服务,用户控制、导航等
·AVFoundation
·AVPlayer/AVAsset
·基于时间的音视频播放框架
·数据和播放状态管理,较少的UI
·MPMoviePlayerController(IOS2-9)
AVFoundation
Model
AVAsset:提供格式无关的媒体数据 截取静态图片/转码/删减/编辑声音/透明度/尺寸
主要体现资源的属性
AVPlayerItem:AVAsset的封装 当前的播放时间、播放状态、播放资源的基本操作
主要体现播放属性
Controller
AVPlayer:开始/暂停 封装对播放资源的简单操作
View
AVPlayerLayer:播放器画面
AVPlayer播放视频
1.根据资源地址URL创建AVPlayerItem
2.根据AVPlayerItem创建播放器
3.获取播放器中的Layer,粘贴到想要的位置
4.播放以及基本的开始&暂停
实现简单视频播放
-(void)layoutWithVideoCoverUrl:(NSString *)videoCoverUrl videoUrl:(NSString *)videoUrl{
_coverView.image = [UIImage imageNamed:videoCoverUrl];
_playButton.image = [UIImage imageNamed:@"icon.bundle/videoPlay.png"];
_videoUrl = videoUrl;
}
-(void)_tapToPlay{
NSURL *videoUrl = [NSURL URLWithString:_videoUrl];
AVAsset *asset = [AVAsset assetWithURL:videoUrl];
AVPlayerItem *videoItem = [AVPlayerItem playerItemWithAsset:asset];
AVPlayer *avPlayer = [AVPlayer playerWithPlayerItem:videoItem];
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:avPlayer];
playerLayer.frame = _coverView.bounds;
[_coverView.layer addSublayer:playerLayer];
[avPlayer play];
}