gpt4 book ai didi

android - 在纵向模式下录制视频时出现方向问题android grafika

转载 作者:行者123 更新时间:2023-11-29 02:23:37 27 4
gpt4 key购买 nike

我设置了设备方向 Landscape 模式,然后它完美地保存了视频。如果我拍摄双方的视频。

但我将设备方向设置为 Portrait 模式,这很奇怪。

例如:

下面是我录制视频时的截图:

但是当我保存视频并在 MXPlayer 中查看时,它看起来像这样:

我使用下面的代码:

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();

if (display.getRotation() == Surface.ROTATION_0) {
mCamera.setDisplayOrientation(90);
// layout.setAspectRatio((double) cameraPreviewSize.height / cameraPreviewSize.width);
} else if (display.getRotation() == Surface.ROTATION_270) {
// layout.setAspectRatio((double) cameraPreviewSize.height / cameraPreviewSize.width);
mCamera.setDisplayOrientation(180);
} else {
// Set the preview aspect ratio.
//layout.setAspectRatio((double) cameraPreviewSize.width / cameraPreviewSize.height);
}

更新:

我也尝试添加 setOrientationHint 我从哪里开始 MediaMuxer

最佳答案

终于在 2 天后我解决了我的问题。

Grafika 的解决方案 ContinuousCaptureActivity.java

drawFrame() 方法中,我将为 portrait 更改一些代码。

我在 drawFrame 方法中添加以下 2 行:

Matrix.rotateM(mTmpMatrix, 0, 270, 0, 0, 1);
Matrix.translateM(mTmpMatrix, 0, -1, 0, 0);

drawFrame方法2中输入设置glViewport

  • 首先用于用它填充SurfaceView。 (这意味着用户录制视频时方向会发生变化)
  • 其次将其发送到视频编码器。 (这意味着保存视频后方向会发生变化)

所以我会在第二个选项中更改

请在下面找到完整代码:

 // Send it to the video encoder.
if (!mFileSaveInProgress) {
mEncoderSurface.makeCurrent();
if (!AppSetting.getValue(activity, Config.ORIENTATION, "").equalsIgnoreCase("Select")) {
if (AppSetting.getValue(activity, Config.ORIENTATION, "").equalsIgnoreCase("Portrait")) {
Matrix.rotateM(mTmpMatrix, 0, 270, 0, 0, 1);
Matrix.translateM(mTmpMatrix, 0, -1, 0, 0);
}
}
GLES20.glViewport(0, 0, VIDEO_WIDTH, VIDEO_HEIGHT);
mFullFrameBlit.drawFrame(mTextureId, mTmpMatrix);
//drawExtra(mFrameNum, VIDEO_WIDTH, VIDEO_HEIGHT);
mCircEncoder.frameAvailableSoon();
mEncoderSurface.setPresentationTime(mCameraTexture.getTimestamp());
mEncoderSurface.swapBuffers();

关于android - 在纵向模式下录制视频时出现方向问题android grafika,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53533890/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com