Я создаю приложение для камеры, где видео постоянно захватываются и сохраняются на SD-карте. Видеоролики короткие (несколько минут), а их длина задана с помощью setMaxDuration().
Весь процесс отлично работает, а основной вид деятельности - на переднем плане. Но, когда я перехожу к другому действию (например, настройкам), видеозапись работает в фоновом режиме только до достижения максимальной продолжительности. Файл сохраняется, но новая последовательность не может быть запущена потому что prepare() терпит неудачу, по-видимому, потому что setPreviewDisplay() не любит иметь подходящую поверхность для прикрепления.
Я попытался использовать фиктивную поверхность, фиктивный SurfaceHolder, lockCanvas() и различные другие трюки, но ничего не работает. Есть ли способ инициализировать MediaRecorder без действительной поверхности?