4

我目前正在使用 Media Projection + Media Recorder 进行屏幕录制。我面临的问题是,当我的手机在录制过程中处于横向模式时,录制的视频只会显示在屏幕的中央/中间,在播放过程中顶部和下方都是黑色(现在是什么,我会喜欢代替)。

我确实看到了可以横向录制的应用程序(例如 AirShou),并且它们录制的视频在播放期间是全屏的。我需要做什么才能发生这种情况?

非常感谢!

4

2 回答 2

3

在您的问题中,您没有添加任何问题图像。我试图在途中了解您的问题。由于我还没有发表评论的权限,所以只是试图通过猜测您的视频被录制和播放良好来描述解决方案: 1. 在横向模式下,您的显示宽度和高度会发生变化,请参见此宽度和高度是否随方向变化?

您可以通过将屏幕方向期间录制屏幕的值重置为横向模式来重新编码。并为横向情绪添加新的不同布局。你可以看到这个

            DisplayMetrics metrics = getResources().getDisplayMetrics();
        int screenWidth = metrics.widthPixels;
        int screenHeight = metrics.heightPixels;
        int screenDensity = metrics.densityDpi;

        // Start the video input.
        mVirtualDisplay = mMediaProjection.createVirtualDisplay("Recording Display", screenWidth,
                screenHeight, screenDensity, 0 /* flags */, mInputSurface,
                null /* callback */, null /* handler */);
于 2017-02-11T11:19:27.487 回答
1

如果有人仍在寻找答案 - 除了@md-sulayman 建议的内容之外,请确保您还交换了宽度高度

mediaRecorder.setVideoSize

像这样 -

mMediaRecorder.setVideoSize(WIDTH, HEIGHT); // for portrait

mMediaRecorder.setVideoSize(HEIGHT,WIDTH); // for landscape
于 2020-07-16T15:51:06.370 回答