Android 屏幕录制方法 - 横向录制,录制的视频以全屏播放与部分屏幕播放

Android Screen Recording How-To - Landscape recording, video recorded plays in full-screen vs partial-screen

我目前正在使用Media Projection + Media Recorder 进行屏幕录制。我面临的问题是,当我的 phone 在录制过程中处于横向模式时,录制的视频只会在播放过程中显示在屏幕的 center/middle 中,顶部和底部黑色(what it is now, what I would like instead).

我确实看到一些应用程序(例如 AirShou)可以横向录制,并且它们录制的视频在播放时是全屏的。我需要做什么才能做到这一点?

非常感谢!

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

您可以 re-code 通过将屏幕方向期间录制屏幕的值重置为横向模式。并添加一个新的不同布局以定位景观情绪。 你可以看到这个

            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 */);

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

中的宽度高度
mediaRecorder.setVideoSize

像这样-

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

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