检查 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
}
有没有什么方法可以检查一个 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
}