我米做它使用摄像机将数据发送到一个surfaceHolder的应用程序。但是当我调用addCallBack()时,我的应用程序崩溃。下面是代码:使用手机的摄像头
public class Cam_View extends Activity implements SurfaceHolder.Callback{
private SurfaceView camView;
private SurfaceHolder camHolder;
private boolean previewRunning;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.camera);
camView = (SurfaceView)findViewById(R.id.sview);
camHolder = camView.getHolder();
camHolder.addCallback(this);
camHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}}
而且未实现的方法:
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
if(previewRunning){
camera.stopPreview();
}
Camera.Parameters camParams = camera.getParameters();
camParams.setPreviewFormat(PixelFormat.JPEG);
camera.setParameters(camParams);
try{
camera.setPreviewDisplay(holder);
camera.startPreview();
previewRunning=true;
}catch(IOException e){
e.printStackTrace();
}
}
public void surfaceCreated(SurfaceHolder holder) {
try{
camera=Camera.open();
}catch(Exception e){
e.printStackTrace();
Toast.makeText(getApplicationContext(),"Error",Toast.LENGTH_LONG).show();
finish();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
camera.stopPreview();
camera.release();
camera=null;
}
为什么会发生应用程序崩溃时,我打电话
camHolder.addCallback(本); ? 我的代码中是否有其他问题?
它现在工作的罚款。 – mremremre1