Это может показаться смешным, но как вывести секунды CMTime на консоль в Objective-C? Мне просто нужно значение, разделенное на шкалу времени, а затем каким-то образом увидеть его в консоли.
Вывод секунд CMTime
Ответы (5)
Простой:
NSLog(@"%lld", time.value/time.timescale);
person
0xDE4E15B
schedule
18.02.2012
Если вы хотите конвертировать в формат hh:mm:ss
, вы можете использовать это
NSUInteger durationSeconds = (long)CMTimeGetSeconds(audioDuration);
NSUInteger hours = floor(dTotalSeconds / 3600);
NSUInteger minutes = floor(durationSeconds % 3600 / 60);
NSUInteger seconds = floor(durationSeconds % 3600 % 60);
NSString *time = [NSString stringWithFormat:@"%02ld:%02ld:%02ld", hours, minutes, seconds];
NSLog(@"Time|%@", time);
person
Inder Kumar Rathore
schedule
21.07.2015
Все ответы до этого не обрабатывают случай NaN:
Свифт 5:
/// Convert CMTime to TimeInterval
///
/// - Parameter time: CMTime
/// - Returns: TimeInterval
func cmTimeToSeconds(_ time: CMTime) -> TimeInterval? {
let seconds = CMTimeGetSeconds(time)
if seconds.isNaN {
return nil
}
return TimeInterval(seconds)
}
person
Alexander Volkov
schedule
25.08.2019
Если вы просто хотите вывести CMTime
на консоль для целей отладки, используйте CMTimeShow
:
Цель-C
CMTime time = CMTimeMakeWithSeconds(2.0, 60000);
CMTimeShow(time);
Свифт
var time = CMTimeMakeWithSeconds(2.0, 60000)
CMTimeShow(time)
Он напечатает value
, timescale
и рассчитает seconds
:
{120000/6000 = 2.0}
person
Fantini
schedule
05.06.2018
person
schedule
как насчет того случая, когда CMTimeGetSeconds возвращает NaN?
- person BUDDAx2; 27.11.2014
Я предполагаю, что ввод является одним из
CMTime
константы (вероятно, не kCMTimeZero
). Попробуйте использовать CMTimeShow
, чтобы увидеть, что это за поля.
- person rob mayoff; 28.11.2014