2013-12-17 45 views
3

我在启动Nexus S和Nexus 5设备上的相机时遇到问题。闪光灯相机不能在nexus S和nexus 5中使用android 4.4

在控制台:

E/SecCamera? ERR(int android::SecCamera::getPreview()):Start Camera Device Reset 
    E/CameraHardwareSec? ERR(int android::CameraHardwareSec::previewThread()):Fail on SecCamera- >getPreview() 
    E/SecCamera? initCamera: m_cam_fd(42), m_jpeg_fd(0) 
    E/SecCamera? initCamera: m_cam_fd2(43) 
    E/CameraHardwareSec? preview window is NULL! 

用下面

  Variable declaration: 
      public Camera cam; 
      public android.hardware.Camera.Parameters p; 

     Code: 
      if(cam==null){ 
       cam = Camera.open(); 
       p = cam.getParameters(); 
       p.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_TORCH); 
       cam.setParameters(p); 
       cam.startPreview(); 
      } 
      else{ 
       p.setFlashMode(android.hardware.Camera.Parameters.FLASH_MODE_OFF); 
       cam.setParameters(p); 
       cam.release(); 
       cam = null; 
      } 

    This kind of service understands and implements SensorEventListener. 

这适用于下面软件4.4多台设备。我该怎么办?请。

+0

已解决问题?我有相机和画廊相同的问题。请参阅我发布的链接: http://stackoverflow.com/questions/24492590/android-camera-and-gallery-not-working-in-nexus-5 –

回答

2

我的解决方案是: 在我的活动中,为摄影机实现SurfaceHolder.Callback和setPreviewDisplay是一个SurfaceHolder。在布局中添加一个SurfaceView。 我的代码:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    this.surfaceView = ((SurfaceView) findViewById(R.id.surfaceview)); 
    this.surfaceHolder = this.surfaceView.getHolder(); 
    this.surfaceHolder.addCallback(this); 
    this.surfaceHolder.setType(3); 

} 

然后:

@Override 
public void surfaceChanged(SurfaceHolder holder, int format, int width, 
     int height) { 

} 

@Override 
public void surfaceCreated(SurfaceHolder holder) { 
    try { 
     this.camera.setPreviewDisplay(holder); 
     return; 
    } catch (IOException localIOException) { 
     localIOException.printStackTrace(); 
    } 
} 

@Override 
public void surfaceDestroyed(SurfaceHolder holder) { 

} 

希望对您有用。 对不起,如果我的英文不正确。