CMTime секунд вывода - PullRequest
       17

CMTime секунд вывода

54 голосов
/ 19 февраля 2012

Это может показаться смешным, но как я могу вывести секунды CMTime на консоль в Objective-C? Мне просто нужно значение, деленное на временную шкалу, а затем каким-то образом увидеть его в консоли.

Ответы [ 5 ]

143 голосов
/ 19 февраля 2012
NSLog(@"seconds = %f", CMTimeGetSeconds(cmTime));
14 голосов
/ 19 февраля 2012

Simple:

        NSLog(@"%lld", time.value/time.timescale);
5 голосов
/ 21 июля 2015

Если вы хотите конвертировать в 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);
1 голос
/ 05 июня 2018

Если вы просто хотите напечатать CMTime на консоли для целей отладки, используйте CMTimeShow:

Objective-C

CMTime time = CMTimeMakeWithSeconds(2.0, 60000); 
CMTimeShow(time);

Swift

var time = CMTimeMakeWithSeconds(2.0, 60000)
CMTimeShow(time)

Он напечатает value, timescale и вычислит seconds:

{120000/6000 = 2.0}
0 голосов
/ 03 декабря 2016
 CMTime currentTime = audioPlayer.currentItem.currentTime;
 float videoDurationSeconds = CMTimeGetSeconds(currentTime);
...