vertical rotate programas posicion orientacion online horizontal girar convertir como cambiar android video-recording device-orientation mediarecorder

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));