iOS CMTimeMake 和 CMTimeMakeWithSeconds

来源:互联网 发布:linux 线程数 查看 编辑:程序博客网 时间:2024/05/17 05:56

原文链接: http://www.cnblogs.com/someonelikeyou/p/5452396.html


CMTime是专门用于标识电影时间的结构体,通常用如下两个函数来创建CMTime

(1)CMTimeMake

1
2
3
4
CMTime CMTimeMake (
   int64_t value,    //表示 当前视频播放到的第几桢数
   int32_t timescale //每秒的帧数
);

value =  [slider value];

timescale = self.player.currentItem.asset.duration.timescale; 

 

(2) CMTimeMakeWithSeconds

1
2
3
CMTime CMTimeMakeWithSeconds(
     Float64 seconds,          //第几秒的截图,是当前视频播放到的帧数的具体时间
     int32_t preferredTimeScale //首选的时间尺度 "每秒的帧数" ); 

float minValue = [slider minimumValue];

float maxValue = [slider maximumValue];

float value = [slider value];

seconds  = duration * (value - minValue) / (maxValue - minValue);

preferredTimeScale =  1 *NSEC_PER_SEC//如果只写 1 的话 有很大的误差,使用 纳秒 也是为了保证指定一个时间播放视频的精确度   timescale可能就是 1   preferredTimeScale的精确度就更高 1 *NSEC_PER_SEC 具体开发时候 要斟酌 精确度设置的问题 看需求 

 关键词解释:

 NSEC:纳秒。

 USEC:微妙。

 SEC:秒

 PER:每

所以:

1.NSEC_PER_SEC,每秒有多少纳秒。

2.USEC_PER_SEC,每秒有多少毫秒。(注意是指在纳秒的基础上)

3.NSEC_PER_USEC,每毫秒有多少纳秒。

1秒可以写成如下几种: 

  1 NSEC_PER_SEC

  1000 USEC_PER_SEC

  USEC_PER_SEC * NSEC_PER_USEC

原创粉丝点击