Android: onPreviewFrame nunca llamado sin SurfaceView

En algunos dispositivos, onPreviewFrame no se llama si no se ha configurado SurfaceView para mostrar la vista previa de la cámara. Sin embargo, manejo la cámara en un servicio, así que no puedo fijar un SurfaceView pero no quiero tener vista previa visible de todos modos.

¿Cómo se puede hacer esto? ¿Puedo crear un SurfaceView y SurfaceView con Camera::setPreviewDisplay ?

¿Esto debe ser posible o no?

Funciona en casi todos los teléfonos sin un SurfaceView pero no en HTC One X y Google Nexus One …

De acuerdo con esta pregunta , crear un SurfaceView en código funciona bien. Aunque no creo que pueda crearlo a través de un servicio.

Otro enfoque es crear un SurfaceView 1px-1px dentro de un RelativeLayout y ocultarlo con alguna otra vista encima de él. (La visibilidad debe ser VISIBLE ). Utilizamos este truco para la interfaz de usuario de la cámara Path , donde procesamos los búferes de vista previa a través de OpenGL y funciona bien.

De acuerdo con la documentación fácilmente configurada, la vista de la superficie visible y visualizada es necesaria para activar la vista previa de la cámara. Puede ser superpuesto aunque

Desde la API 11 SurfaceTexture , puede utilizar SurfaceTexture lugar de SurfaceView para obtener fotogramas de la cámara. Entonces, en lugar de usar Camera.setPreviewDisplay , simplemente use Camera.setPreviewTexture .

Esta respuesta, así como ésta, discuten este punto.

  • Android: cómo hacer findViewById (R.id.xxx) trabajando en una clase heredando / extendiendo desde la clase View?
  • Vista androide o surfaceView, ¿qué debo usar?
  • ¿Cómo se anima un cambio en el relleno de una vista?
  • Android SurfaceView mostrar imagen después de vídeo (superficie clara)
  • ¿Cómo hacer un SurfaceView siempre horizontal?
  • Reproducción de vídeo en un GLSurfaceView en lugar de SurfaceView
  • Android - ¿Cómo circular zoom / ampliar parte de la imagen?
  • Obtener nuevo mapa de bits de imagen escalada y visible
  • Vista previa de la cámara Android estirada
  • Imagen de mapa de bits sin memoria
  • Solución para Android SurfaceView touch lag
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.