检查CMTime等于

时间:2015-02-12 07:16:49

标签: objective-c time compare equals cmtime

是否有任何方法可以检查CMTime是否等于另一个CMTime。在我的情况下,我需要检查CMTime是否等于KCMTimeZero。我尝试过CMTimeCompare方法,但对于所有等于KCMTimeZero或大于KCMTimeZero的CMTime,它都是True。

3 个答案:

答案 0 :(得分:8)

我通过将其转换为秒来找到以下检查方式

if(CMTimeGetSeconds(myTime) == CMTimeGetSeconds(kCMTimeZero))
{
     // do something...     
}

答案 1 :(得分:6)

CMTimeCompare做到了这一点,

来自Xcode的文档CMTimeReference

int32_t CMTimeCompare ( CMTime time1, CMTime time2 );

返回值
两个CMTimes的数字关系。

    如果time1小于time2,则返回
  • -1。
  • 如果time1大于time2,则返回
  • 1。
  • 如果time1和time2相等,则返回
  • 0。

答案 2 :(得分:2)

我更喜欢使用CMTIME_COMPARE_INLINE中定义的CMTime.h宏来保持代码的可读性。 以下是您的案例代码(与kCMTimeZero比较):

if (CMTIME_COMPARE_INLINE(myTime, ==, kCMTimeZero))
{
    // Your code here
}