Fiz um app de camera, codico nos links , mas quando estou na camera e aperto o botao do celular para voltar a “Home” do android , não do app , e depois tento voltar para o app ele da erro caso eu deixe o camera.release, caso eu o retire ele volta normal porem nao ira liberar a camera, a duvida é como liberar a camera neste meu codigo , que é o codigo tutorial do google valeu.
public void surfaceDestroyed(SurfaceHolder holder) {
// empty. Take care of releasing the Camera preview in your activity.
debug.debug("CameraPreview","surfaceDestroyed");
if( mCamera != null ) {
mCamera.stopPreview( );
mCamera.release();// assim da erro ao voltar para o app
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
// empty. Take care of releasing the Camera preview in your activity.
debug.debug("CameraPreview","surfaceDestroyed");
if( mCamera != null ) {
mCamera.stopPreview( );
//mCamera.release();//assimnao da erro porem nao libera a camera para o sistema
}
}
http://pastebin.com/2ABAm3QB
http://pastebin.com/gN5J1LR9
http://pastebin.com/1ZBhy4WW
Try and Catch… basta tratar o erro!
Ja tentou isso ?
public void surfaceDestroyed(SurfaceHolder holder) {
// empty. Take care of releasing the Camera preview in your activity.
debug.debug("CameraPreview","surfaceDestroyed");
if( mCamera != null ) {
mCamera.stopPreview( );
mCamera.release();// assim da erro ao voltar para o app
mCamera = null;
}
}
Se não funcionar libera o surface também.
Ola isso eu ja tentei e não deu certo não, tentei de novo agora mas quando eu saio do app estando na camera e volto para ele ocorre o mesmo erro.
Descobri que o erro ocorrendo quando o app tenta retomar a camera no metodo surfaceCreated e dar o setPreviewDisplay(holder); acho que ao dar release ele libera o holder mas como arrumar isso?
[code] public void surfaceCreated(SurfaceHolder holder) {
debug.debug(“CameraPreview”,“surfaceCreated”);
// The Surface has been created, now tell the camera where to draw the preview.
try { // ocorre o erro aqui
mCamera.setPreviewDisplay(holder);
mCamera.startPreview();
} catch (IOException e) {
Log.d("CameraPreview", "Error setting camera preview: " + e.getMessage());
}
debug.debug("CameraPreview","surfaceCreated SAIDA");
}[/code]
alguem sabe o que ocorre ? help
Tenta fazer o seguinte
Cria um metodo com o conteudo do seu surfaceDestroyed e adiciona metodo para remover o callback do surface : removeCallback
e chama esse metodo no onStop e no onDestroy
no meu app de camera fiz assim 