当我们尝试使用 MediaRecorder 录制视频时,视频在 android 和设备中正确录制,它会像录制一样显示,但是当我们可以在 VLC 或桌面上的其他播放器中播放视频时,它会旋转视频和它不会正确显示。 我可以将 MediaRecorder setOrientationHint 设置为 90 度。
改变方向有什么问题,为什么?
最佳答案
我们无法在捕获视频时直接应用固定方向。我的意思是说您在 MediaRecorder setOrientationHint 中使用了固定 90 度方向。你需要设置setOrientationHint(dynamic degree);
首先,您需要获取显示旋转并使用显示旋转获取角度。然后将 That Degree 设置为 setOrientationHint 方法。这对所有人都有效。这是代码。
Display display = getWindowManager().getDefaultDisplay();
int mDisplayRotation = display.getRotation();
public int getDisplayOrientationAngle() {
Log.e("", "setDisplayOrientationAngle is call");
int angle;
// switch (MeasurementNativeActivity.DisplayRotation) {
switch (mDisplayRotation) {
case Surface.ROTATION_0: // This is display orientation
angle = 90; // This is camera orientation
break;
case Surface.ROTATION_90:
angle = 0;
break;
case Surface.ROTATION_180:
angle = 270;
break;
case Surface.ROTATION_270:
angle = 180;
break;
default:
angle = 90;
break;
}
Log.v("", "media recorder displayRotation: " + mDisplayRotation);
Log.v("", "media recorder angle: " + angle);
return angle;
}
mMediaRecorder.setOrientationHint(getDisplayOrientationAngle());
关于捕获视频后android视频方向发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25159212/