Подтвердить что ты не робот

Камера Android замерзает после съемки одной фотографии

Я делаю один проект с камерой, и после того, как одна фотокамера замерзает, и у вас есть, чтобы закончить активность и снова вызвать ее, чтобы сделать еще одну фотографию, как я могу сделать фото заморозить всего 1-2 секунды, а затем посмотреть на поверхность чтобы снова включить камеру. то же самое для видео Я использую медиа-рекордер, снимаю видео-стоп, сохраняя видео, и экран все еще жив, но я не могу снова снимать видео. Мне нужно перезапустить работу?

У кого-нибудь есть решение?

4b9b3361

Ответ 1

Сделайте любую обработку изображений в фоновом режиме AsyncTask. Это позволит вашему пользовательскому интерфейсу продолжить работу и сделать еще одно изображение.

Изменить: я не могу удалить принятый ответ, поэтому, пожалуйста, см. ниже приведенный ниже ответ. Вызов camera.startPreview() перед тем, как сделать следующую фотографию для него.

Ответ 2

Я нашел решение для этого: после съемки изображение предварительного просмотра остановится. Чтобы сделать больше фотографий, сначала вызовите camera.startPreview().

Ответ 3

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

mCamera.stopPreview();
mCamera.startPreview();

он будет работать нормально.

Ответ 4

Камера .startpreview(); ответ не работал для моего случая, но приведенный ниже код решил эту проблему для меня и надеюсь, что это поможет другим тоже. Я использовал поток, чтобы задержать закрытие и открытие камеры после того, как фотография будет захвачена 500 мс

 private void start_camera() {
     try {
         camera = Camera.open();
         // camera.lock();
     } catch (RuntimeException e) {
         Log.e(tag, "init_camera: " + e);
         return;
     }
     Camera.Parameters param = camera.getParameters();
     param = camera.getParameters();
     Camera.Size size = param.getSupportedPreviewSizes().get(0);
     param.setPreviewSize(size.width, size.height);
     camera.setParameters(param);
     try {
         camera.setPreviewDisplay(surfaceHolder);
         camera.startPreview();
         previewRunning = true;
     } catch (Exception e) {
         Log.e(tag, "init_camera: " + e);
         return;
     }}
 private void captureImage() {
     camera.takePicture(shutterCallback,null,jpegCallback);
     Thread restart_preview=new Thread(){public void run(){
         try {
             Thread.sleep(500);
         } catch (InterruptedException e) {
             e.printStackTrace();
         }

         camera.release();
         camera=null;
         start_camera();
     }};
     restart_preview.start();}

Ответ 5

Вместо использования действий, определенных существующим приложением камеры на вашем телефоне, вы можете написать свое собственное действие, которое напрямую использует API-интерфейс камеры для выполнения описанных вами функций. Класс камеры описан здесь: http://developer.android.com/reference/android/hardware/Camera.html

Ответ 6

Камера замерзает, потому что вы не перезапускаете предварительный просмотр камеры, поэтому перезапустите ее, вызвав camera.startpreview()