Я пишу приложение для обработки видео, и мне нужно знать фактическое время каждого кадра.
Сначала приложение работает нормально, когда я использовал elapsedRealtime
Для вычисления смещения времени:
long timeOffset = java.lang.System.currentTimeMillis() - android.os.SystemClock.elapsedRealtime();
long actualTime = timestamp + timeOffset;
Но когда я использовал другое устройство, я обнаружил, что какое-то устройство будет использовать uptimeMillis
для SurfaceTexture.timestamp, поэтому код должен быть:
long timeOffset = java.lang.System.currentTimeMillis() - android.os.SystemClock.uptimeMillis();
long actualTime = timestamp + timeOffset;
Так что мой вопрос: Есть ли способ узнать, какой источник времени используется устройством для SurfaceTexture ?
Хотя я могу вычислить ближайший источник времени при запуске приложения, но я думаю, что это может вызвать еще одну аварию, которую я могу 'пока не знаю.
Есть ли способ узнать это?