我一直在查看与创建CMTime
相关的文档。所有函数(CMTimeMake()
,CMTimeMakeWithSeconds()
等)都会使用第二个名为preferredTimeSale
的参数。
有人可以向我解释这是什么,以及为什么以这种方式指定它?
答案 0 :(得分:7)
根据opening paragraphs of Apple's CMTime documentation:
CMTime表示为有理数,带有分子(a int64_t value)和分母(int32_t时间刻度)。 从概念上讲,时间刻度指定了每秒的分数 分子中的单位占用。因此,如果时间刻度是4,则每个单位 代表四分之一秒;如果时间刻度是10,每个单位 代表十分之一秒,依此类推。除了简单 时间值,CMTime可以表示非数字值:+无穷大, - 无限,无限期。使用标志CMTime表示时间是否在某个时间点被舍入。
因此,如果时间刻度为4,则每个单位时间测量单位为四分之一秒。
如果您的时间刻度为1,那么每个单位的时间测量单位都是一秒钟(但对于您的用户而言,这可能是一个非常慢的动画)。
Many video formats use a timescale of 600:
您经常使用600的时间刻度,因为这是一个常见的倍数 几种常用的帧速率:每秒24帧(fps) 电影,NTSC(用于北美和日本的电视)的30 fps,以及25 PAL的fps(用于欧洲的电视)。使用600的时间刻度,你可以 准确地表示这些系统中的任意数量的帧。