AVPlayer详解系列

2020-05-27  本文已影响0人  求长生

首先在iOS平台使用播放视频,可用的选项一般有这四个,他们各自的作用和功能如下:

使用环境    优点  缺点

MPMoviePlayerController MediaPlayer 简单易用 不可定制
AVPlayerViewController AVKit 简单易用 不可定制
AVPlayer AVFoundation 可定制度高,功能强大 不支持流媒体
IJKPlayer IJKMediaFramework 定制度高,支持流媒体播放 使用稍复杂

一、AVPlayer的控制

前面讲过该类是控制视频播放行为的,他的使用比较简单。
播放视频:
[self.player play];
暂停视频:
[self.player pause];
更改速度:
self.player.rate = 1.5;//注意更改播放速度要在视频开始播放之后才会生效

2、视频的时间信息

在AVPlayer中时间的表示有一个专门的结构体CMTime

typedef struct{
CMTimeValue value; // 帧数
CMTimeScale timescale; // 帧率(影片每秒有几帧)
CMTimeFlags flags;
CMTimeEpoch epoch;
} CMTime;
CMTime是以分数的形式表示时间,value表示分子,timescale表示分母,flags是位掩码,表示时间的指定状态。

获取当前播放时间,可以用value/timescale的方式:

float currentTime = self.playItem.currentTime.value/item.currentTime.timescale;
还有一种利用系统提供的方法,我们用它获取视频总时间:

float totalTime = CMTimeGetSeconds(item.duration);
如果我们想要添加一个计时的标签不断更新当前的播放进度,有一个系统的方法:

https://blog.csdn.net/super_man_ww/article/details/84895079

上一篇下一篇

猜你喜欢

热点阅读