- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我设置了设备方向 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/
我设置了设备方向 Landscape 模式,然后它完美地保存了视频。如果我拍摄双方的视频。 但我将设备方向设置为 Portrait 模式,这很奇怪。 例如: 下面是我录制视频时的截图: 但是当我保存视
我使用 ContinuousCaptureActivity.java 实现视频录制。它工作完美。 现在我想在此视频中添加音频。 我知道使用 MediaMuxer可以在视频中添加音频。 但问题是我不知道
我提到了 Grafika's CameraCaptureActivity在显示相机预览的同时录制视频。 我对代码所做的更改(相关的)是 - 用户点击按钮启动PreferencesActivity,选择
我想从文件中加载视频,对其进行一些转换并将其渲染回文件中。所述变换主要是两个视频重叠并在时间上移动其中一个。 Grafika有一些与此问题相关的示例。 RecordFBOActivity.java 包
我目前正在尝试以方形录制视频并将输出创建为 .mp4。看来真的很有挑战性。我尝试了不同的方法,包括:OnPreviewFrame 和 FFMpeg。但一直没有得到满意的结果。今天我找到了Grafika
我正在寻求帮助解决我在使用 Grafika's CameraCaptureActivity 时遇到的问题代码。我想构建一个可以记录相机并显示预览的应用程序,所以这个示例和代码看起来正是我想要的,到目前
我正在学习 Grafika 的“Continuous Capture” Activity ,它是关于使用 MediaCodec 录制视频。 Activity 源代码位于https://github.c
我是一名优秀的程序员,十分优秀!