我发现以纵向模式录制的视频会旋转 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 度旋转。有人对此有建议吗?非常感谢。
最佳答案
使用 mMediaRecorder.setOrientationHint(int)
这绝对有效。
您可能需要使用各种方向来获取纵向和横向所有相机的 int 值。
关于android - 录制的视频上传到互联网后旋转 90 度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098147/