CMTimeMake - получите меньше / больше растворенных ценностей, чем секунды

StackOverflow https://stackoverflow.com/questions/4071671

Вопрос

Я успешно делаю Cmime. со следующим кодом:

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

Текущая позиция, которая первоначально была поплавка, из фильма в моем MPMoviePlayerController возвращается как Cmime в считанные секунды, что неплохо.

Но как я могу получить эту позицию, например, в милличных секундах? Я играл с «сроком» и установил его на 10 и 100, но это не повлияло на результат.

Заранее спасибо!

Это было полезно?

Решение

Я не совсем уверен, что вы хотите. Вы понимаете логику позади 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)
…

Другими словами, CMTimeMake(a, b) это ценность времени a/b. Отказ Таким образом, когда у вас есть время с плавающей точкой:

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

Может быть, это то, что вы хотите?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top