Я работал над проектом и должен заставить работать распознавание лиц с фокусом, благодаря SO.
Сейчас я делаю снимки, но при использовании фронтальной камеры Nexus 5 и размера предварительного просмотра 1280x960 игровые сервисы, похоже, устанавливают размер изображения 320x240.
Проверил, 1280х960 поддерживается как на превью, так и на картинке.
Я попытался изменить параметры с помощью отражения (так же, как и для фокуса), но ничего не изменилось. Кажется, необходимо изменить это перед запуском предварительного просмотра...
Я пытался прочитать и отладить обфусцированный код, но не могу понять, почему библиотека решает использовать такое низкое разрешение :-(
Используемый код близок к тому, что включен в пример, просто добавлена возможность сделать снимок с помощью CameraSource.takePicture(...)
Код можно найти в репозитории примеров.
Код для воспроизведения проблемы => здесь
Я изменил инициализацию камеры с помощью:
mCameraSource = new CameraSource.Builder(context, detector)
.setRequestedPreviewSize(1280, 960)
.setFacing(CameraSource.CAMERA_FACING_FRONT)
.setRequestedFps(30.0f)
.build();
Добавил кнопку и подключил прослушиватель кликов:
findViewById(R.id.snap).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mCameraSource.takePicture(null, new CameraSource.PictureCallback() {
@Override
public void onPictureTaken(byte[] bytes) {
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
Log.d("BITMAP", bmp.getWidth() + "x" + bmp.getHeight());
}
});
}
});
Вывод журнала:
BITMAP﹕ 320x240
Спасибо за помощь !