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

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

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

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

10
задан Jonas 12 August 2011 в 08:55
поделиться

2 ответа

Вы реализуете обратные вызовы Surface?

Почему вам нужно инициализировать MediaRecorder без действительной поверхности?

Предполагается ли, что вы будете записывать даже когда вы покидаете основную активность? Или запись прекращается до того, как порождается другая активность?

-1
ответ дан 4 December 2019 в 03:39
поделиться

К сожалению, для записи видео требуется предварительный просмотр на действующей поверхности (Android SDK 1.6–2.2). Записан запрос на улучшение для снятия этого ограничения http://code.google.com/p/android/issues/detail?id=9570

4
ответ дан 4 December 2019 в 03:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: