4

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

4

3 回答 3

9

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

if(CMTimeGetSeconds(myTime) == CMTimeGetSeconds(kCMTimeZero))
{
     // do something...     
}
于 2015-02-12T07:39:22.640 回答
7

CMTimeCompare做那个把戏,

来自Xcode的文档CMTimeReference

int32_t CMTimeCompare ( CMTime time1, CMTime time2 );

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

  • 如果 time1 小于 time2,则返回 -1。
  • 如果 time1 大于 time2,则返回 1。
  • 如果 time1 和 time2 相等,则返回 0。
于 2015-02-12T08:52:14.043 回答
2

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

if (CMTIME_COMPARE_INLINE(myTime, ==, kCMTimeZero))
{
    // Your code here
}
于 2017-03-29T07:54:58.693 回答