solucion - Android: no se puede conectar a la cámara
no se puede conectar con la camara asegurese de cerrar otras aplicaciones (9)
Además, si está utilizando el emulador, asegúrese de haber seleccionado Emular la Cámara frontal y / o la Cámara posterior.
Android Virtual Device Manager-> Seleccionar dispositivo-> Editar-> Cámara frontal-> Emulada
Estoy usando el código de muestra APIDemo de Android.
Cuando ejecuto el ejemplo de CameraPreview, al principio me daba un error .
Lo rastreé y la muestra estuvo trabajando por un tiempo.
Ahora, ya no funciona. Dice
ERROR/AndroidRuntime(2949): java.lang.RuntimeException: Fail to connect to camera service
¿Qué puede estar causando eso? Sucede cuando se llama a camera.open()
.
Gracias,
Tee
Asegúrese de liberar correctamente todos los recursos de la cámara adquirida:
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (mCam != null) {
mCam.stopPreview();
mCam.setPreviewCallback(null);
mCam.release();
mCam = null;
}
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
if (mCam == null) {
mCam = Camera.open();
try {
mCam.setPreviewDisplay(holder);
// TODO test how much setPreviewCallbackWithBuffer is faster
mCam.setPreviewCallback(this);
} catch (IOException e) {
mCam.release();
mCam = null;
}
}
}
Asegúrese de que sus elementos <uses-permission>
estén en las posiciones correctas en su archivo AndroidManifest.xml
.
Como otros mencionan, debes llamar a release () en el objeto de tu cámara cuando hayas terminado.
No estaba haciendo esto inicialmente, así que cambié mi código pero aún así me dio el mismo error. Me estaba desplegando directamente en un teléfono físico y tuve que reiniciar el teléfono antes de que funcionara
Otro motivo de este error es cuando intenta abrir la cámara, pero alguna otra aplicación o incluso su aplicación ya está utilizando la cámara.
Second @ matt-burns, sin embargo, es posible que desee comprobar que solo está tratando de obtener la cámara una vez. Me olvidé de comentar una línea y estaba tratando de lanzar dos actividades que tratarían de obtener la cámara.
Sucede si su actividad no cierra la cámara correctamente en surfaceDestroyed
o onConfigurationChanged
etc ...
No olvide hacer esto cada vez que salga de su actividad:
if (camera!=null){
camera.stopPreview();
camera.release();
camera=null;
}
También recibí este error cuando estaba probando y detuve la ejecución antes de llegar al punto en el código cuando:
if (camera!=null){
camera.stopPreview();
camera.release();
camera=null;
}
fue llamado. Esto bloqueó la cámara porque no se había lanzado correctamente. Mi solución fue apagar la cámara y volver a encenderla. Puede confirmar que este es el caso al intentar usar la aplicación de cámara incorporada en su teléfono. Tampoco funcionará porque todavía está ocupado.
También recibo este tipo de problema en un dispositivo HTC. Para resolver agrega este código:
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
if (camera!=null)
{
camera.stopPreview();
camera.release();
camera=null;
}
}
Y sin embargo, no puede iniciar la cámara y luego reiniciar el dispositivo.