Android屏幕录制教程 - 横屏录制,录制的视频在全屏和部分屏幕播放之间切换

4
我目前正在使用媒体投影+媒体记录器进行屏幕录制。我面临的问题是,在录制过程中,如果我的手机处于横向模式,播放时录制的视频将仅在屏幕中心/中间显示,并在其上下部位呈现黑色(现在的样子我希望的样子)。
我看到有一些应用程序(例如AirShou)可以在横向模式下录制,并且他们所记录的视频在播放时是全屏的。我需要做什么才能实现这一点呢?
非常感谢!
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 */);

非常感谢您的帮助!调整/交换宽度和高度帮助我实现了我需要实现的目标。 - Cookies 'n Creme
非常感谢,这就是@Cookies 'n Creme在问题中想要问的。你的答案百分之百有效。 - User

1

如果还有人在寻找答案 - 除了@md-sulayman所建议的之外,还要确保在中交换宽度和高度。

mediaRecorder.setVideoSize

像这样 -
mMediaRecorder.setVideoSize(WIDTH, HEIGHT); // for portrait

并且

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

由于文档规定:“如果在prepare()之后或setOutputFormat()之前调用,会抛出IllegalStateException”,因此我们无法在录制过程中更改视频大小。 - syed_noorullah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接