La superficie de la cámara Android se cambió constantemente
Estoy desarrollando una aplicación que utiliza la cámara. He hecho la clase de vista previa como esto:
public class MyPreview extends SurfaceView implements SurfaceHolder.Callback, Camera.Preview Callback{ ... public void surfaceCreated(SurfaceHolder holder){ ... mCamera.setPreviewCallback(this); ... } public void surfaceDestroyed(SurfaceHolder holder){ ... } public void surfaceChanged(SurfaceHolder holder, int format, int w, int h){ ... } public void onPreviewFrame(byte[] data, Camera camera){ ... } }
Básicamente, es el ejemplo de CameraDemo. Ejemplo de Android CameraDemo
- SurfaceView con vista previa de cámara no se destruye
- Android Cómo obtener una vista previa de una imagen, utilizando su ruta de acceso desde SDcard, desde mi aplicación
- ¿Mostrar la vista por encima de la barra de estado?
- Determina qué VISTA en varias vistas tiene gesto (doble clic, deslizar hacia la izquierda, deslizar hacia la derecha, etc.)?
- Android - stackoverflow Error
El problema es que surfaceCreated se llama una sola vez (como debería), pero surfaceChanged está siendo constantemente llamado (en lugar de sólo una vez, o cuando la superficie cambia), y creo que esta es la razón por la que onPreviewFrame nunca se llama. La alimentación de la cámara se muestra en la pantalla y parece que funciona bien, pero en realidad no lo es.
Lo curioso es que funciona bien en Android 2.x, y los problemas sólo surgen en Android 4.1. (No lo he probado en otros dispositivos)
He estado buscando alrededor y creo que puede ser la verdadera razón detrás de este stackoverflow cuestión sin resolver y esta otra cuestión de stackoverflow no resuelto y este caso de code.google . Este último caso tiene una "solución", pero no funcionó para mí.
Por lo tanto, cualquier idea de por qué surfaceChanged se está entrando todo el tiempo y cómo resolverlo?
- ¿Cómo mostrar la lista desplegable-ver debajo de la vista particular en android?
- Cómo eliminar el espacio específico entre el padre y el niño en un ExpandableListView
- Android en la vista eliminado de los padres
- Android: agrega la vista al diseño haciendo que el diseño esté delante de ActionBar
- Vistas superpuestas en Android
- Establecer el ancho y la altura de la imagen en ImageView
- Lista de posición de los puntos repetidos en getview
- Cargando imágenes remotas
Pruebe estos tutoriales http://android-er.blogspot.ru/2010/12/implement-takepicture-function-of.html . También intentar looing en artículos anteriores del ciclo.
- Llamar a la actividad externa mediante una intención (explícita) de la aplicación Qt en Android – putExtra no funciona
- Animación a escala Android para el tamaño especificado