Pregunta

estoy haciendo con éxito un CMTime con el siguiente código:

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

La posición actual, que originalmente era un valor flotante, de la película en mi MPMoviePlayerController se da vuelta como un CMTime en segundos, que no está mal.

Pero, ¿cómo puedo conseguir esta posición en, por ejemplo, en milisegundos? He jugado con la 'escala de tiempo' y ponerlo a 10 y 100, pero no tienen un efecto para el resultado.

Gracias de antemano!

¿Fue útil?

Solución

No estoy realmente seguro de lo que quiere. ¿Usted entiende la lógica detrás de 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 otras palabras, es la CMTimeMake(a, b) a/b valor de tiempo. Por lo tanto cuando se tiene un valor de tiempo de punto flotante:

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

Tal vez esto es lo que quiere?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top