Android не может записывать видео с фронтальной камерой, запуск MediaRecorder не удался: -19

У меня есть две разные базы кода с одной и той же проблемой.

Первый код скопирован прямо с developer.android.com здесь: http://developer.android.com/guide/topics/media/camera.html#custom-camera

Второй код:

http://android-er.blogspot.com.au/2011/10/simple-exercise-of-video-capture-using.html

Оба работают нормально с обычной задней камерой, но как только я пытаюсь использовать фронтальную камеру, я получаю ошибку.

Это происходит на следующих устройствах:

Nexus S 4.1.2

Galaxy Nexus 4.1.2

Nexus 7 4.2.1 (он имеет только фронтальную камеру)

Я также попробовал то, что похоже на параметры камеры эпохи 2.2, что, как утверждают некоторые, требуется для некоторых устройств Samsung и HTC, хотя в нескольких разных статьях упоминаются разные строковые ключи:

c = Camera.open(frontFacingCameraID); // attempt to get a Camera instance
Camera.Parameters params = c.getParameters();
params.set("cam-mode", 1);
params.set("cam_mode", 1);
params.set("camera-id", 1);
c.setParameters(params);

Ничего из этого не работает, также обратите внимание, что я обнаруживаю правильный идентификатор передней камеры, который на Nexus 7, конечно, равен: 0. Но результаты одинаковы на всех устройствах.

Я пробовал использовать профиль низкого качества, я пытался вручную установить разрешение видео, кодировщик, формат вывода, битрейт, частоту кадров и размер видео, но ни один из них не помог.

То, что заставляет меня думать, что с большинством кода нет ничего плохого, это то, что обычная камера работает нормально. Поэтому я предполагаю, что это как-то связано с методом prepareVideoRecorder () / prepareMediaRecorder (), который устанавливает медиа-рекордер.

Возможно, настройки ручного кодирования медиа-рекордера, которые работают на фронтальной камере?

Я должен сказать, что Android Camera и MediaRecorder API 'с сосать По сравнению с iOS это немного путаница, не говоря уже о некоторых страшно выглядящих проблемах несовместимости параметров и различных разрешениях в фрагментированном ландшафте устройств.

Предполагая, что я могу заставить его работать на моих устройствах JB, кто-нибудь знает из опыта, если большинство этих проблем решаются с помощью API 15 ICS?

Я бы посоветовал не поддерживать API 10 Gingerbread, если его будет слишком сложно поддерживать.

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

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