android录制视频设置分辨率,Android录制视频的全面屏适配

在Android录制视频的功能上,之前解决了Android8.0以上系统不允许应用在用户不知情的情况下在后台执行操作,按常理来讲应该是没有什么问题了,但是最近部分机子无法支持录制,而且会异常,打开log查看后发现问题是出现在

mediaRecorder?.prepare()

而查阅大量资料给出的解释是录制适配需要设置分辨率,如果分辨率不适合就是导致prepare异常报错

而我在录制前设置的分辨率是获取的手机的分辨率,将其填入setVideoSize,在试过了许多方法都无效的情况下,抱着死马当做活马医的心态,我把setVideoSize注释掉,然后发现居然可以正常录制适配了,但是录制的适配只有屏幕的一小部分,那就说明就是分辨率的问题,可是分辨率是获取的手机的分辨率,怎么会出现这种问题呢

于是我打印出了获取到的手机分辨率,发现出问题的机子,获取到的分辨率都少了一截,以红米k30为例子,红米k30官方给出的分辨率是2400X1080,而我获取到的分辨率是2175X1080,少了一截,那我将分辨率改为2400X1080呢?还是报错,那调低呢,2100X1080,居然正常了

在我一脸疑惑的时候,我突然发现,出现异常的机子都是异形屏,也就是刘海屏,水滴屏,挖空屏,所以在录制的稍后分辨率应该减去statubar的分辨率就可以正常录制适配