2012-02-18 10 views
46

Esto puede parecer ridículo, pero ¿cómo puedo sacar los segundos de CMTime a la consola en Objective-C? Simplemente necesito el valor dividido por la escala de tiempo y luego de alguna manera lo veo en la consola.CMTime seconds output

Respuesta

128
NSLog(@"seconds = %f", CMTimeGetSeconds(cmTime)); 
+2

¿qué tal si CMTimeGetSeconds devuelve NaN? – BUDDAx2

+0

Supongo que la entrada es una de las constantes ['CMTime'] (https://developer.apple.com/library/IOs/documentation/CoreMedia/Reference/CMTime/index.html#//apple_ref/doc/constant_group/Time_Constants) (probablemente no 'kCMTimeZero'). Intenta usar 'CMTimeShow' para ver cuáles son sus campos. –

+0

verificar para "duración> 0" funciona para mí – BUDDAx2

12

simple:

 NSLog(@"%lld", time.value/time.timescale); 
+0

perfecto, funciona como un encanto! – arik

4

Si desea convertir en formato hh:mm:ss continuación, puede utilizar esta

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); 
0
CMTime currentTime = audioPlayer.currentItem.currentTime; 
float videoDurationSeconds = CMTimeGetSeconds(currentTime);