[DESCRIPTION]
前置摄像头安装0度或者180度,切换到前置摄像头,camera提示强行关闭
[ANALYSE]
从复现问题的main log来看有如下几点:
1. AndroidRuntime: java.lang.RuntimeException: startPreview failed
2. Required preview size 是3:4,不是4:3,比如480/640,而非640/480:
MtkCam/MCamHw: The preview size is to large, not supported! Max supported preview size(720/480), required preview size(480/640)
3. Parameter里面设置的picture size是3:4,preview size是3:4,preview-size-values里面没有3:4 的值。
Log中搜索“picture-size=”,“preview-size=”,“preview-size-values”。
MtkCam/CamAdapter: (…,picture-size=1200x1600;…, preview-size=480×640;preview-size-values=176x144,320x240,352x288,640x480,720x480;…)
4. 从log来看AP获得的sensor orientation是0/180度:
Ex:camera : Sensor[1]'s orientation is 0
[SOLUTION]
如果出现进前置摄像头提示强制关闭的现象,并且从log来分析完全符合上面提到的四点。请按照如下步骤解决问题。
第一步,确定前置摄像头安装角度是否真是0度或者180度。
先修改sensor配置文件:
getSensorOrientation()方法中,
如果u4Degree_1 : 0先修改为u4Degree_1 :90;如果u4Degree_1 :180先修改为u4Degree_1 :270
重新build一遍工程之后,进camera的前置摄像头,看preview的图像是否为正。
1) preview 画面正常,则说明贵司前置摄像头安装角度是90/270,只是sensor 配置文件没有写正确,所以按照如上修改即可解决问题。
2)preview画面上下翻转,如果u4Degree_1 : 90,则修改为u4Degree_1 :270 ;如果u4Degree_1 : 270,则修改为u4Degree_1 :90即可解决问题。说明贵司前置摄像头安装是90或者270,并不是0或者180。
3)preview的画面旋转90度,请还原sensor配置文件的修改(原先是u4Degree_1 :0还是u4Degree_1 :0,原先是u4Degree_1 :180,还是修改为u4Degree_1 :180)继续下一步。
第二步,将sensor 配置文件中的:
MBOOL isRetFakeSubOrientation()
{
return MFALSE;
}
修改为:
MBOOL isRetFakeSubOrientation()
{
return MTRUE
;
}
重新build 一遍工程,即可。
Sensor 配置文件及路径:
ICS 跟GB:
Cfg_tuning_mt6575.h(alps\mediatek\custom\project\hal\camera\camera)
ICS2:
Cfg_setting_imgsensor.h (alps\mediatek\custom\projectname\hal\camera\camera\mt6577)