今天想写个手电筒应用,看网上的代码基本都是如下:
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
camera.startPreview();
在我的nexus 5里面怎么也打不开闪光灯,查了好久,加了一条这个在startPreview()之前:
camera.setPreviewTexture(new SurfaceTexture(0));
终于能打开闪光灯了。
原帖如下:
http://*.com/questions/21417332/nexus-5-4-4-2-flashlight-led-not-turning-on
还没有测试在其他手机上是个什么样的情况,先马克1。
还有setPreviewTexture()和SurfaceTexture类,马克2。
API里面关于 setPreviewTexture()是这么说的,“This method must be called before startPreview()”,不然会报错。
还是就是关于camera对象, 用完之后最好 camera=null。