检查 CMTime 等于

Check CMTime Equals

有没有什么方法可以检查一个 CMTime 是否等于另一个 CMTime。在我的例子中,我需要检查 CMTime 是否等于 KCMTimeZero。我尝试了 CMTimeCompare 方法,但对于等于 KCMTimeZero 或大于 KCMTimeZero 的所有 CMTimes 都是 True。

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

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

CMTimeCompare 这样做,

来自 Xcode 的文档 CMTimeReference:

int32_t CMTimeCompare ( CMTime time1, CMTime time2 );

Return 值
两个CMTimes的数值关系

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

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

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