android - rotate - Cómo cambiar la orientación del video en MediaRecorder a retrato
girar video android online (5)
Cuando grabo video con MediaRecorder, siempre se graba en modo horizontal, independientemente de la orientación real del dispositivo. ¿Cómo forzar MediaRecorder / cámara usar orientación real?
Agregue las siguientes dos líneas de código:
Camera.setDisplayOrientation(90); // use for set the orientation of the preview
mRecorder.setOrientationHint(90); // use for set the orientation of output video
antes de:
mRecorder.setCamera(mCamera);
Ejemplo completo:
mRecorder = new MediaRecorder();
// Both are required for Portrait Video
mCamera.setDisplayOrientation(90);
mRecorder.setOrientationHint(90);
// Step 1: Unlock and set camera to MediaRecorder
mCamera.unlock();
mRecorder.setCamera(mCamera);
// Step 2: Set sources
mRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
// Step 3: Set a CamcorderProfile (requires API Level 8 or higher)
mRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_480P));
Echa un vistazo a la documentación aquí.
http://developer.android.com/guide/topics/media/camera.html#capture-video
El error más común en este ejemplo es setCamera (). DEBE COLOCAR LA CÁMARA INMEDIATAMENTE DESPUÉS DE HACER EL GRABADOR MEDIO, de lo contrario obtendrá errores.
Camera mCamera = getCameraInstance();
// adjust the camera the way you need
mCamera.setDisplayOrientation(90);
MediaRecorder recorder = new MediaRecorder();
recorder.setCamera(mCamera);
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
recorder.setOutputFile(filePath);
// add any limits
recorder.setMaxDuration(50000); // 50 seconds
recorder.setMaxFileSize(5000000); // Approximately 5 megabytes
Espero que esto ayude a alguien. ¡¡Buena suerte!!
También me he quedado con este problema antes. Descubrí que puedes usar la función setOrientationHint (API 9). Llame a esta función antes de llamar a MediaRecorder.prepare (). Puede configurar el grado de orientación para su salida de vídeo.
¡Espero que ayude, buena suerte!
consulte Camera.Parameters.setRotation() para obtener más información.
Hay un ejemplo allí y, en lugar de llamar a setRotation (rotación), intente llamar a mediaRecorder.setOrientationHint (rotación) al grabar video.
mMediaRecorder = new MediaRecorder();
mServiceCamera.setDisplayOrientation(90);
mMediaRecorder.setOrientationHint(90);
mServiceCamera.unlock();
mMediaRecorder.setCamera(mServiceCamera);
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));