2010-11-01 10 views
2

que je fais avec succès un CMTime avec le code suivant:CMTimeMake - rapetissent/valeurs plus dissoutes que quelques secondes

endPoint = CMTimeMake([mp currentPlaybackTime], 1); 

La position actuelle, ce qui était à l'origine une valeur flottante, du film dans mon MPMoviePlayerController est rendu en CMTime en quelques secondes, ce qui n'est pas mauvais.

Mais comment puis-je obtenir cette position par ex. en milli secondes? J'ai joué avec le "timescale" et l'ai mis à 10 et 100, mais cela n'a pas eu d'effet sur le résultat.

Merci d'avance!

Répondre

7

Je ne suis pas vraiment sûr de ce que vous voulez. Comprenez-vous la logique derrière CMTime?

1.0s = 1/1s = CMTimeMake(1, 1) 
0.1s = 1/10s = CMTimeMake(1, 10) 
0.2s = 1/5s = CMTimeMake(1, 5) 
0.2s = 2/10s = CMTimeMake(2, 10) 
… 

En d'autres termes, CMTimeMake(a, b) est la valeur temporelle a/b. Ainsi, lorsque vous avez une valeur à virgule flottante:

double time1 = 0.2; 
// in ms, (0.2*1000)/1000 == 200/1000 == 0.2 
CMTime time2 = CMTimeMake(time1*1000, 1000); 

Peut-être que c'est ce que vous voulez?

+0

Ah, d'accord. Sache que je comprends cela. J'étais juste confus car a mis la valeur du CMTime dans un NSLog pour les voir et ils chaque fois où entier. Merci beaucoup ! – Micko