深度解析: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.史上真实张三丰:在棺材中竟神奇复活

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