The output depends on setOrientationHint(..)
set orientationClick here
mediaRecorder.setOrientationHint(mOrientation); if (Build.MODEL.equalsIgnoreCase("Nexus 6") && flag == 1) { if (mOrientation == 90) { mediaRecorder.setOrientationHint(mOrientation); } else if (mOrientation == 180) { mediaRecorder.setOrientationHint(0); } else { mediaRecorder.setOrientationHint(180); } } else if (mOrientation == 90 && flag == 1) { mediaRecorder.setOrientationHint(270); } else if (flag == 1) { mediaRecorder.setOrientationHint(mOrientation); } mOrientation you can get from `OrientationEventListener`
You need to enable() orientation listener and disable onDestroy()
Step 1: declare believable and Object:
OrientationEventListener myOrientationEventListener; int iOrientation = 0; int mOrientation = 90;
Step 2: add this onCreate() method
private void identifyOrientationEvents() { myOrientationEventListener = new OrientationEventListener(this, SensorManager.SENSOR_DELAY_NORMAL) { @Override public void onOrientationChanged(int iAngle) { final int iLookup[] = {0, 0, 0, 90, 90, 90, 90, 90, 90, 180, 180, 180, 180, 180, 180, 270, 270, 270, 270, 270, 270, 0, 0, 0};
also enable() in onResume()
@Override protected void onResume() { super.onResume(); try { if (myOrientationEventListener != null) myOrientationEventListener.enable(); } catch (Exception e1) { e1.printStackTrace(); } }
Step 3: Disable After Preparing MediaRecorder Using
myOrientationEventListener.disable();