我一直在查看与创建CMTime
s 相关的文档。所有函数(CMTimeMake()
,CMTimeMakeWithSeconds()
等)都带有一个名为 的第二个参数preferredTimeSale
。
有人可以向我解释这是什么,为什么以这种方式指定?
我一直在查看与创建CMTime
s 相关的文档。所有函数(CMTimeMake()
,CMTimeMakeWithSeconds()
等)都带有一个名为 的第二个参数preferredTimeSale
。
有人可以向我解释这是什么,为什么以这种方式指定?
CMTime 表示为一个有理数,有一个分子(一个 int64_t 值)和一个分母(一个 int32_t 时间刻度)。从概念上讲,时间刻度指定分子中每个单位占用的秒数。因此,如果时间刻度为 4,则每个单位表示四分之一秒;如果时间刻度为 10,则每个单位表示十分之一秒,依此类推。除了简单的时间值之外,CMTime 还可以表示非数字值:+infinity、-infinity 和 indefinite。使用标志 CMTime 指示时间是否在某个点被舍入。
因此,如果时间刻度为 4,则每个时间测量单位为四分之一秒。
如果您的时间刻度是 1,那么每个时间测量单位是一秒(但这对您的用户来说可能是一个相当慢的动画)。
您经常使用 600 的时间刻度,因为这是几个常用帧速率的公倍数:电影每秒 24 帧 (fps),NTSC 每秒 30 帧(用于北美和日本的电视),以及 25 PAL 的 fps(用于欧洲的电视)。使用 600 的时间刻度,您可以准确地表示这些系统中的任意数量的帧。