深度解析:CMTime在现代媒体中的运用与影响

更新:11-16 现代故事 我要投稿 纠错 投诉

CMTime是C语言结构体,value代表分子,timescale代表分母,flag是一个枚举类型,代表时间的状态。

CMTime的创建 :

CMTime可以通过两种方式创建:

CMTimeMake(value, timeScale) : value参数是时间(不是秒,可以理解为当前帧)。 timeScale参数:可以理解为每秒多少帧。

方法结构:

获取视频当前播放时间:value/timescale

例子:

CMTime t1=CMTimeMake(8,4) //t1当前播放时间为2秒

CMTime t2=CMTimeMake(4, 2)

播放时间为2秒,但视频播放速率不同。第一个2秒播放8帧,第二个2秒播放4帧。比率是差额的2倍。

CMTimeMakeWithSeconds ( a , b ) : a 当前秒数,b 每秒帧数。比如CMTimeMakeWithSeconds(4.000, 2) 其实和CMTimeMake(8, 2) 一样,每秒2 帧,总共4 秒,所以当前帧是8。

可以使用CMTimeShow函数打印CMTime相关信息

如CMTimeShow(t1)

输出:{8/4=2.000}

CMTime的计算 :

添加:

CMTime t3=CMTimeAdd(t1,t2)(相当于分数相加,不做约减)

输出:{16/4=4.000}

减去:

CMTime t4=CMTimeSubtract(t1, t2) (相当于减去分数)

输出:{0/4=0.000}

CMTimeRange

CMTimeRange是表示时间范围的数据类型,定义如下:

其中start表示时间的起点,duration表示时间范围的持续时间。

CMTimeRange的创建

创建CMTimeRange有两种方法:

CMTimeRangeMake ( a , b ) : a 为时间起点,b 为持续时间

CMTimeRangeFromTimeToTime( a , b ) : a 为时间起点,b 为时间终点,会自动计算持续时间,如下面的r3。但如果b的播放时间小于a的播放时间,就会出现问题,比如下面的r4。

代码及输出如下

CMTimeRange 的交集和并集

交集:两个时间范围交叉的时间范围

CMTimeRangeGetIntersection(timeRange2, timeRange1)

Union:两个时间范围时间范围之和

CMTimeRangeGetUnion(时间范围1,时间范围2)

代码及输出如下:

深度解析:CMTime在现代媒体中的运用与影响和的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

【深度解析:CMTime在现代媒体中的运用与影响】相关文章:

1.动物故事精选:寓教于乐的儿童故事宝库

2.《寓教于乐:精选动物故事助力儿童成长》

3.探索动物旅行的奇幻冒险:专为儿童打造的童话故事

4.《趣味动物刷牙小故事》

5.探索坚韧之旅:小蜗牛的勇敢冒险

6.传统风味烤小猪,美食探索之旅

7.探索奇幻故事:大熊的精彩篇章

8.狮子与猫咪的奇妙邂逅:一场跨界的友谊故事

9.揭秘情感的力量:如何影响我们的生活与决策

10.跨越两岸:探索彼此的独特世界

上一篇:平凡伴侣篇(一) 下一篇:淘粉吧购物安全可靠,网购省钱技巧揭秘