Я хочу реализовать запись видео l oop (например, устройства DVR для автомобилей / автомобилей работают таким образом).
MediaRecorder
имеет setMaxDuration
метод:
После того, как запись достигнет указанной продолжительности, в MediaRecorder.OnInfoListener будет отправлено уведомление с кодом «что» в MEDIA_RECORDER_INFO_MAX_DURATION_REACHED, и запись будет остановлена. Остановка происходит асинхронно, нет гарантии, что диктофон остановится к тому времени, когда слушатель получит уведомление.
Поэтому, когда он достигает этой «максимальной длительности», он прекращает запись, но асинхронно, и как я могу начать новый сеанс записи, если предыдущий еще может продолжаться?
Должен ли я создать новый экземпляр MediaRecorder
для следующего сеанса записи? Будет ли работать нормально?
private val infoListener: MediaRecorder.OnInfoListener =
MediaRecorder.OnInfoListener { mr, what, extra ->
when (what) {
MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED -> {
// I want to start a new recording session
}
...
}
}