【问题标题】:android video orientation change after captureing video捕获视频后android视频方向更改
【发布时间】:2014-08-06 11:29:44
【问题描述】:
当我们尝试使用 MediaRecorder 录制视频时,视频会在 android 和设备中正确录制,它会像录制一样显示,但是当我们可以在 VLC 或桌面的其他播放器中播放视频时,它会旋转视频并它不会正确显示。
我可以将 MediaRecorder setOrientationHint 设置为 90 度。
改变方向有什么问题,为什么?
【问题讨论】:
标签:
android
video
mediarecorder
android-mediarecorder
【解决方案1】:
我们不能在捕捉视频时直接应用固定方向。我的意思是说您在 MediaRecorder setOrientationHint 中使用了固定 90 度方向。你需要设置setOrientationHint(动态度数);
首先,您需要获取显示旋转并使用显示旋转获取角度。然后将 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());