Мое приложение должно записывать видео с максимальным временем 8 секунд. Это уже реализовано с помощью MediaRecorder.setMaxDuration (длинные миллисекунды). Приложению также нужен индикатор выполнения вверху и метка с обратным отсчетом оставшегося времени.
Проблема здесь в том, что существует смещение между пользовательским интерфейсом и прогрессом MediaRecorder, и это приводит пользователя в замешательство. Например, пользователь думает, что он/она что-то записал, потому что так сказал прогресс в интерфейсе, но медиа-рекордер обрезал видео на секунду раньше.
Задача состоит в том, чтобы запустить индикатор выполнения и счетчик точно в то же время, когда рекордер фактически начинает запись. Я пытался запустить таймер после MediaRecorder.start() в обратном вызове, когда созданный файл модифицируется в первый раз, но я не нашел способа добиться этого правильным образом. Мы пытались установить жестко заданное смещение для этих значений, но, конечно, это не работало одинаково для каждого устройства.
Я бы хотел, чтобы от MediaRecorder был обратный вызов, чтобы сообщить, что он действительно начал записывать видео, или, может быть, текущую длину.
Проблема ясна? Кто-то решил это раньше?