2012-02-05 2 views
1

나는 LG Optimus Black (android 2.2.2)을 사용하는 고객에게 매번 카메라 미리보기가 제공됩니다. 다른 기기에서는 모두 정상적으로 작동합니다. 이 전화기에 문제가 있습니까? 아니면 누군가가 해결책을 가지고 있습니까? 내 카메라 미리보기의 코드는 다음과 같습니다.LG Optimus Black에서의 카메라 미리보기

SurfaceHolder.Callback mySurfaceHolderCallback = new SurfaceHolder.Callback() 
{ 
    @Override 
    public void surfaceCreated(SurfaceHolder holder) 
    { 
     Log.i("GMG", "surfaceCreated"); 

     try 
     { 
      mCamera = Camera.open(); 
      holder.setFormat(PixelFormat.TRANSLUCENT); 
      mCamera.setPreviewDisplay(holder); 
     } 
     catch (IOException e) 
     { 
      if (mCamera == null) return; 
      mPreviewRunning= false; 
      mCamera.release(); 
      mCamera = null;    
     } 
    } 

    @Override 
    public void surfaceDestroyed(SurfaceHolder holder) 
    { 
     Log.i("GMG", "surfaceDestroyed"); 
     if (mCamera != null) 
     { 
      mCamera.stopPreview(); 
      mPreviewRunning= false; 
      mCamera.release(); 
      mCamera = null; 
     } 
    } 

    @Override 
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) 
    { 
     Log.i("GMG", "surfaceChanged"); 

     if (mCamera != null) 
     { 
      if(mPreviewRunning) mCamera.stopPreview(); 

      Camera.Parameters p = mCamera.getParameters(); 

      //Angolo visivo della fotocamera 
      angoloVisualeX = p.getHorizontalViewAngle(); 
      angoloVisualeY = p.getVerticalViewAngle(); 

      //Formati della preview 
      supportedPreviewSize = p.getSupportedPreviewSizes();    
      int preview_width = supportedPreviewSize.get(supportedPreviewSize.size()-1).width; 
      int preview_height = supportedPreviewSize.get(supportedPreviewSize.size()-1).height; 
      p.setPreviewSize(preview_width, preview_height); 

      //Set camera orientation 
      Display display = ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); 
      if(display.getRotation() == Surface.ROTATION_0) mCamera.setDisplayOrientation(90); 
      if(display.getRotation() == Surface.ROTATION_270) mCamera.setDisplayOrientation(180); 

      mCamera.setParameters(p); 
      mCamera.startPreview(); 
      mPreviewRunning = true; 
     } 
    } 
}; 

감사합니다.

내가 해결 한

답변

1

, 나는 이유는 모르겠지만, 큰 카메라 미리보기의 witha 나는

 int preview_width = supportedPreviewSize.get(0).width; 
     int preview_height = supportedPreviewSize.get(0).height; 

 int preview_width = supportedPreviewSize.get(supportedPreviewSize.size()-1).width; 
     int preview_height = supportedPreviewSize.get(supportedPreviewSize.size()-1).height; 

문제를

변화를 필요 없다

관련 문제