Я обнаружил, что записанное видео в портретном режиме будет вращаться на 90 градусов. Таким образом, я использовал следующий код, чтобы повернуть его, когда я устанавливаю mediaRecorder:
if (this.getResources().getConfiguration().orientation !=Configuration.ORIENTATION_LANDSCAPE)
{
mediaRecorder.setOrientationHint(270);
}
else
{
mediaRecorder.setOrientationHint(0);
}
mediaRecorder.setOutputFile(file_name);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
Предварительный просмотр также находится в правой ориентации, так как я использовал следующий код в методе surfaceCreated:
Camera.Parameters params = camera.getParameters();
if (this.getResources().getConfiguration().orientation
!=Configuration.ORIENTATION_LANDSCAPE)
{
camera.setDisplayOrientation(90);
}
else
{
camera.setDisplayOrientation(0);
}
params.setRotation(90);
camera.setParameters(params);
Таким образом, записанное видео находится в правильной ориентации при воспроизведении на устройстве. Однако после загрузки в Интернет видео по-прежнему 90 градусов. Кто-нибудь об этом говорит? Большое спасибо.