我米做它使用攝像機將數據發送到一個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