设置摄像头的分辨率为 width = 640,height = 480,但是实际预览时,却是:
width==960 height==720(MI3 4.4.4 KTU84P,MIUI版本: MIUI 6.6.2.0(KXCCNCF)|稳定版)
width== 1024 height==576 (MI3 4.4.4 KTU84P,MIUI版本: MIUI 5.7.2|开发版)
有没有知道这是怎么回事啊?
已解决,不是硬件问题,是代码问题,原因:设置摄像头参数失败。定位到设置闪光灯这句代码。
parameters.setFlashMode(Parameters.FLASH_MODE_OFF); 把这句代码去掉就可以了。
解决此问题的过程有必要记录一下,要从中吸取经验教训,以后再碰到此问题就可以迎刃而解了。
我的解决方式:(1)一开始是打断点,进不去onPreview方法里(但后来同事好像一开始也没 进去,后来就进去了,还是要多尝试几次的),(2)然后换成打log,(3)根据log,,没有打断点,分析到的结果是:给摄像头设置640X480,但不起作用,log显示预览时是1024x576,虽然有设置的分辨率但是还是选择best,。(设置参数,默认设置成功了,忽略了是否设置成功,当然了这是后话)
(2)然后断定很可能是硬件问题,就去百度,搜对应的机型,设置摄像头预览分辨率不起作用等。
同事的做法:打断点,针对有问题的代码,一步一步debug,(我当时线debug,太慢了,就打的log,结果log只分析了个大概)断点进不去的地方,又尝试了几次就进去了,然后一步一步来,起先发现是摄像头参数没有设置成功(这一点我 没有发现啊),随后定位到是parameters.setFlashMode(Parameters.FLASH_MODE_OFF);这句话有问题,删掉就可以了
学到:
1. (所有情况都适用)以后再遇到bug,一定要打断点,debug,一步一步来,对有问题的代码,一步一步debug,别嫌麻烦,通过打log,有些情况是发现不了的。
我。
2.(针对此问题本身),摄像头设置参数了,但不一定就设置成功。setPreviewSize 这家代码执行成功不一定mCamera.setPremerters(param)这句代码就执行成功了。