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

(1)CMTimeMake

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

value =  [slider value];

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

 

(2) CMTimeMakeWithSeconds

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

 

iOS CMTimeMake 和 CMTimeMakeWithSeconds 学习的更多相关文章

  1. ios和android一并学习的体会

    如果说为什么要同时学习这两种不同的移动平台,其实有一定的“闲”的因素在里面. 相对于ios,android我是早半年接触的.最开始学习的时候也就是j2ee学习的延续,通过看视频连带看书学了大概一个月的 ...

  2. [iOS]关于零基础学习iOS开发的学习方法总结

    关于零基础学习iOS开发的学习方法总结 最近很多零基础来参加蓝鸥培训的学生经常会问到一些学习方法的问题,就如下我自己见过的好的学习方法一起讨论一下. 蓝鸥iOS开发技术的学习路线图 程序员的主要工作是 ...

  3. IOS开发-OC学习-常用功能代码片段整理

    IOS开发-OC学习-常用功能代码片段整理 IOS开发中会频繁用到一些代码段,用来实现一些固定的功能.比如在文本框中输入完后要让键盘收回,这个需要用一个简单的让文本框失去第一响应者的身份来完成.或者是 ...

  4. IOS开发-UI学习-sqlite数据库的操作

    IOS开发-UI学习-sqlite数据库的操作 sqlite是一个轻量级的数据库,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了,而且它的处理速度比Mysql.PostgreSQL这 ...

  5. iOS copy 和 mutableCopy 学习

    (参考 iOS 52个技巧学习心得笔记 第二章 对象 , 消息, 运行期)的对象部分 关于Copy  有个经典问题”大部分的时候NSString的属性都是copy,那copy与strong的情况下到底 ...

  6. iOS一些推荐的学习路径发展

    iOS论坛里有朋友要求回答帖子,帖子的标题是: 想学IOS开发高阶一点的东西,从何開始,然后我吧啦吧啦回答写了非常多.既然敲了那么多字,我就把我写的回复也贴到博客里来分享.希望能对大家有帮助.欢迎大家 ...

  7. IOS开发之XCode学习009:UIViewController使用

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 通过点击屏幕事件,调用ViewController ...

  8. IOS开发之XCode学习007:UIWindow对象

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm #import "AppDelegate.h" @i ...

  9. iOS 二维码 学习

    这段时间忙着交接工作,找工作,找房子,入职,杂七杂八的,差不多一个月没有静下来学习了.这周末晚上等外卖的时间学习一下二维码的制作与扫描. 项目采用OC语言,只要使用iOS自带的CoreImage框架, ...

随机推荐

  1. Mac显示和隐藏隐藏文件

    显示:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏:defaults write com.apple.finder A ...

  2. D - Sigma Function 1~n内有多少个约数和为偶数

    /** 题目:D - Sigma Function 链接:https://vjudge.net/contest/154246#problem/D 题意:求1~n内约数和为偶数的数的个数. 思路:一个数 ...

  3. 【Mac + Appium学习(一)】之安装Appium环境前提准备

    环境: Appium version :1.9.1 Appium-desktop:1.7.1 Xcode:10.0 IOS:iPhone5S(10.3.3) Android:6.0.1 Mac:10. ...

  4. sql limit offset 区别

    select * from table limit 2,1;                  //含义是跳过2条取1条数据,即读取第3条数据 select * from table limit 2 ...

  5. opus 规范 与参数解析

    bytestream_put_buffer(&p, "OpusHead", 8); bytestream_put_byte(&p, 1); /* Version * ...

  6. Bootstrap -- 标签属性

    @.aria-label和aria-labelledby 用于屏幕阅读器 原文:https://blog.csdn.net/liuyan19891230/article/details/5045283 ...

  7. Spring MVC集成Log4j

    以下示例显示如何使用Spring Web MVC框架集成LOG4J.首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态表单的Web应用程序: 创建一 ...

  8. 新MBP使用git命令时启用xcode的终端log

    Last login: Mon Oct 22 12:41:33 on consoleuser:~ me$ git Agreeing to the Xcode/iOS license requires ...

  9. MEF笔记 之延迟加载

    文章参考:在MEF中实现延迟加载部件  作者:TianFang 仅有一个服务提供者时候 using System; using System.Collections.Generic; using Sy ...

  10. eclipse中如何查看一个android模拟器的内部文件

    eclipse中如何查看一个android模拟器的内部文件,有时要在其中添加一个文件夹或是什么的,要手动的做这件事,而不能够用代码去完成时,就要用这个方法了. 1.首先,打开一个安卓模拟器. 2.这个 ...