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
我目前正在使用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