2012-04-30 20 views
12

Mi aplicación de cámara de video graba en el modo horizontal, pero la cámara frontal muestra la imagen normal, pero la grabación real se duplica (volteada o invertida) en el eje.¿Cómo evitar que Android invierta la imagen desde la cámara frontal?

Todo funciona muy bien en la cámara trasera normal.

¿Alguien me puede sugerir una forma de evitarlo? Cualquier sugerencia o código fuente ayudaría mucho. Gracias.

+0

Ha visto http://stackoverflow.com/questions/9754346/prevent-flipping-of-the-android-front-facing-camera/17569915 # 17569915 Esto funciona para API> = 14. – Steve

Respuesta

10

Las malas noticias: este reflejo está codificado en el servicio de la cámara y no se puede deshabilitar.

Las buenas noticias: si tiene una API reciente (nivel de API> = 14), puede usar fácilmente un TextureView para duplicar la imagen de vista previa al original. Tome el TextureView Example en la Documentación de Android, luego use setTransform para establecer una transformación de duplicación. Esto revertirá la imagen de vista previa al original no reflejado.

Tenga en cuenta que una transformación espejo es lo mismo que una transformación de escala con una escala -1 en el eje X.

Si tiene una versión de API anterior, puede hacer lo mismo con SurfaceView (usando setScaleX, nivel de API> = 11).

+0

¿Alguna idea para api pre-11? – njzk2

+0

@ Paul-Jan puede darme un código de ejemplo con setTransform para voltear la vista previa – Aswathy

+2

'setScaleX (-1)' resultados en negro 'SurfaceView' (API 21). – TWiStErRob

Cuestiones relacionadas