Android: как инициализировать MediaRecorder без допустимой поверхности для предварительного просмотра видео?

Я создаю приложение для камеры, в котором видео постоянно записывается и сохраняется на SD-карту. Видеоролики короткие (несколько минут), а их продолжительность задается с помощью setMaxDuration ().

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

Я пытался использовать фиктивную Surface, фиктивную SurfaceHolder, lockCanvas () и различные другие приемы, но ничего не получалось. Есть ли способ инициализировать MediaRecorder без допустимой поверхности?

Ответы на вопрос(5)

Ваш ответ на вопрос