CMTimeMake - получите меньше / больше растворенных ценностей, чем секунды
-
28-09-2019 - |
Вопрос
Я успешно делаю 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);
Может быть, это то, что вы хотите?
Не связан с StackOverflow