Проверка CMTime Равна


Существует ли какой-либо метод проверки CMTime равен другому CMTime. В моем случае мне нужно проверить CMTime равно KCMTimeZero. Я попробовал метод CMTimeCompare, но он будет верен для всех CMTimes, которые равны KCMTimeZero или больше, чем KCMTimeZero.

3 2

3 ответа:

Я нашел следующий способ проверить, преобразовав его в секунды

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

CMTimeCompare делает этот трюк,

Из документации Xcode CMTimeReference:

int32_t CMTimeCompare ( CMTime time1, CMTime time2 );

Возвращаемое значение
численное соотношение двух CMTimes.

  • -1 возвращается, если time1 меньше time2.
  • 1 возвращается, если time1 больше time2.
  • 0 возвращается, если time1 и time2 равны.

Я предпочитаю использовать CMTIME_COMPARE_INLINE макрос, определенный в CMTime.h, чтобы код был более читаемым. Вот код для вашего случая (сравнение с kCMTimeZero):

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