studio - mejor grabador de pantalla android 2018
La intención de tomar video en Android (3)
Necesito tomar video de mi aplicación usando solo cámara frontal. Estoy usando la intención de realizar esta acción.
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, videoUri);
intent.putExtra("android.intent.extra.durationLimit", 30);
intent.putExtra("android.intent.extras.CAMERA_FACING", 1); //to open front facing camera
startActivityForResult(intent, VIDEO_CAPTURE);
Cuando ejecuto la aplicación, puedo tomar video usando la cámara frontal. Pero supongamos que cuando hago clic en mi botón grabar video y se abre la vista de la cámara. En ese usuario ve y cambia la cámara a la cámara trasera, siempre mi intención es abrir la cámara trasera solo después de eso. No está tomando la línea
intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
¿Podría alguien decirme cuál es el problema y se puede resolver con intención?
Cree su aplicación de toma de video personalizada que asegure que solo usa la cámara frontal
Creo que esta es la única forma de hacer esto.
Espero que ayude .
No existe una manera confiable de utilizar la intención de mostrar la cámara frontal todo el tiempo, al menos no en todos los dispositivos. La única manera de hacerlo de manera confiable es crear un SurfaceView y capturar el video usted mismo.
Vea si esto funciona:
try {
if (Camera.getNumberOfCameras() == 2) {
if (frontCamera) {
frontCamera = false;
prCamera.stopPreview();
prMediaRecorder.release();
prMediaRecorder = null;
prCamera.release();
prCamera = null;
} else {
frontCamera = true;
prCamera.stopPreview();
prMediaRecorder.release();
prMediaRecorder = null;
prCamera.release();
prCamera = null;
}
Intent intent = new Intent(VideoCapture_New.this,
VideoCapture_New.class);
startActivity(intent);
} else {
Toast.makeText(VideoCapture_New.this,
"Your device doesn''t contain Front Camera.",
Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(VideoCapture_New.this,
"Your device is not compatible for Front Camera.",
Toast.LENGTH_SHORT).show();
}
fuente: cámara frontal en android
De lo contrario, podría usar Android keyEvents para activar el botón presionando el interruptor de la cámara si el video comienza a grabar en la cámara trasera. KeyEvents necesita sincronizarse perfectamente; de lo contrario, terminan activando otra cosa. Comprobar: KeyEvent .
También si estás haciendo uso de
mMediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
Esta firma para CamcorderProfile.get () adopta de forma predeterminada un perfil para la cámara trasera. Entonces, en lugar de usar esto, usa:
public static CamcorderProfile get (int cameraId, int quality)
mediaRecorder.setVideoFrameRate(15);
use cualquier valor, 1 - 15 para velocidad de fotogramas. mira esto para detalles adicionales.
Espero que esto ayude.