捕获视频后android视频方向发生变化

标签 android video mediarecorder android-mediarecorder

当我们尝试使用 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/

相关文章:

java - OpenGL-ES 启用正交模式 2D

android - 如何压缩图像而不丢失其元数据?

javascript - 阻止 IE/Edge 预加载视频

video - 确定视频文件的(典型?)关键帧频率

android - 以编程方式暂停媒体记录器。来自三星银河的 Camera.apk 有 `this.mMediaRecorder.pause();` 在我的代码中不起作用

android - 如何在 Android 2.3(Gingerbread) 中录制 mp4/m4a 格式的音频?

android - 如何防止 onNavigationItemSelected 在 Activity 启动时触发?

java - 如何修复第一次点击 'set' 为空,第二次点击仅获取日期

video - 如何使用 Youtube 的新嵌入代码样式自动播放视频?

android - 使用安卓 MediaRecorder