Я делаю приложение, которое использует камеру для отправки данных на поверхность. Но когда я вызываю 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