2015-04-22 3 views
0

Передняя камера отображается вверх ногами. Я читаю каждый кадр. Я думаю, я знаю, куда положить код. В surfaceChanged, но не знаю, как это сделать.Просмотр камеры вверх дном

@Override 
    public void surfaceChanged(SurfaceHolder mHolder, int arg1 , int arg2 , int arg3) 
    { 
     if (mHolder.getSurface() == null) { return; } 

     mCamera.setPreviewCallback(previewCallback); 

     try 
     { 
      mCamera.setPreviewDisplay(mHolder); 
      mCamera.startPreview(); 

      return; 
     } 
     catch (Exception exception) 
     { 
      Log.d("CameraView", (new StringBuilder()).append("Error starting camera preview: ") 
        .append(exception.getMessage()).toString()); 
     } 
    } 

Что я пробовал.

private android.hardware.Camera.PreviewCallback previewCallback = new android.hardware.Camera.PreviewCallback() 
    { 
     public void onPreviewFrame(byte abyte0[] , Camera camera) 
     {  
      int[] rgbData = YuvUtils.decodeGreyscale(abyte0, widthPreview,heightPreview); 

      editedBitmap.setPixels(rgbData, 0, widthPreview, 0, 0, widthPreview, heightPreview); 

      if(MainActivity2.cameraId==CameraInfo.CAMERA_FACING_FRONT) // it is rotating my CameraPreview continuosly. 
      { 
       matrix.postRotate(270F); 
      } 
      finalBitmap = Bitmap.createBitmap(editedBitmap, 0, 0, widthPreview, heightPreview, matrix, true); 

      if(saveCurrentFrame) 
      { 
       saveCurrentFrame =false; 

       new BitmapSaver(ctx, finalBitmap).start(); 
      } 
     } 
    }; 

Но это непрерывно вращающийся мой предварительный просмотр камеры. И моя деятельность настроена на Потрайт. В моей деятельности не допускается изменение ориентации

ответ

4

Я бы использовал matrix.setRotate().

matrix.postRotate() добавляет к вращению каждый раз, когда его вызывают. Уголки идут от 270 -> 540 -> 810 -> 1080 -> 1350 -> и т.д.

matrix.setRotate() всегда установить его на 270.

+0

Большое спасибо. Это работает. – Nepster

+1

Хорошо. Я рад. :) –

+0

Один вопрос, который у меня возникает, когда я наклоняю камеру. Он показывает вверх тормашками. Где, как я установил свою активность, чтобы бросить. Любая идея, что делать. – Nepster

1

Вы можете использовать _camera.SetDisplayOrientation(90) вращать предварительный просмотр вашей камеры, прежде чем принять изображение.

Смежные вопросы