Deshabilitar el cambio de orientación
Re-Iniciación Cámara Personalizada, al hacer el cambio en los modos de vista previa , de Paisaje a Retrato o Retrato a Paisaje , mi código de clase de superficie se ve así:
PreviewSurface.java:-
- Transmitir vídeo en vivo desde la cámara en android
- La aplicación Phonegap se cierra después de que la cámara capture la imagen.
- Espejo de la cámara frente a frente en Android
- ¿Cómo puedo establecer el tamaño de vista previa de la cámara a la relación de aspecto cuadrado en un SurfaceView cuadrado (como Instagram)
- Cómo hacer que la cámara aparezca en el área de pantalla en particular en android?
public class PreviewSurface extends SurfaceView implements SurfaceHolder.Callback { public static final String LOG_TAG = "CameraPreview"; private SurfaceHolder mSurfaceHolder; private Camera mCamera; // Constructor that obtains context and camera @SuppressWarnings("deprecation") public PreviewSurface(Context context, Camera camera) { super(context); this.mCamera = camera; this.mSurfaceHolder = this.getHolder(); this.mSurfaceHolder.addCallback(this); this.mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); this.mSurfaceHolder.setFixedSize(100, 100); } @Override public void surfaceCreated(SurfaceHolder surfaceHolder) { try { Camera.Parameters parameters = mCamera.getParameters(); if (this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) { parameters.set("orientation", "portrait"); mCamera.setDisplayOrientation(90); parameters.setRotation(90); mCamera.setPreviewDisplay(surfaceHolder); mCamera.startPreview(); } else { // This is an undocumented although widely known feature parameters.set("orientation", "landscape"); // For Android 2.2 and above mCamera.setDisplayOrientation(0); // Uncomment for Android 2.0 and above parameters.setRotation(0); } mCamera.setPreviewDisplay(surfaceHolder); mCamera.startPreview(); } catch (IOException e) { // left blank for now } } @Override public void surfaceDestroyed(SurfaceHolder surfaceHolder) { mCamera.stopPreview(); mCamera.release(); } @Override public void surfaceChanged(SurfaceHolder surfaceHolder, int format, int width, int height) { try { Camera.Parameters parameters = mCamera.getParameters(); if (this.getResources().getConfiguration().orientation != Configuration.ORIENTATION_LANDSCAPE) { parameters.set("orientation", "portrait"); mCamera.setDisplayOrientation(90); parameters.setRotation(90); } else { // This is an undocumented although widely known feature parameters.set("orientation", "landscape"); // For Android 2.2 and above mCamera.setDisplayOrientation(0); // Uncomment for Android 2.0 and above parameters.setRotation(0); } mCamera.setPreviewDisplay(surfaceHolder); mCamera.startPreview(); } catch (IOException e) { // left blank for now } } }
¿Puedo saber dónde estoy haciendo mal, lo que he perdido en mi código?
- Cómo capturar los marcos de imagen de vista previa desde la aplicación de cámara en la programación de Android?
- Configurar el tamaño de la cámara - ¿Parámetros vs intención?
- ¿Qué es SurfaceView SurfaceHolder Superficie de la cámara API android
- ¿Por qué la cámara del emulador androide se detiene inesperadamente?
- Tamaños de vista previa de cámara compatibles para los teléfonos Android populares
- Phonegap cámara Android mata cordova
- SetRotation (90) para tomar la imagen en el modo vertical no funciona en los dispositivos samsung
- El brillo de la cámara de visión Android (móvil) es muy bajo
Tienes que manejar el cambio de configuración para tu aplicación.
Agrega esta línea a tu AndroidManifest.xml.
android:configChanges="keyboardHidden|orientation|screenSize"
Esto le dice al sistema qué cambios de configuración va a manejar usted mismo – en este caso por no hacer nada.
Espero que ayude
No está claro de su pregunta de qué se queja, pero parece que solo manipula los parámetros de la cámara, nunca llamando a mCamera.setParameters(parameters)
. Esto solo puede causar confusión.
Usando parameters.set("orientation", "landscape");
En dispositivos que no admiten este parámetro puede causar RuntimeException en mCamera.setParameters(parameters)
. Por lo tanto, por lo general usamos un intento por separado … coger alrededor de este ajuste.
- Error: No se encontró ningún recurso que coincida con el nombre dado (en 'theme' con el valor '@ style / AppTheme')
- ¿Cómo eliminar la caché de otras aplicaciones de nuestra aplicación Android?