android camera使用ISO值录制视频

来源:互联网 发布:正规淘宝客服 交押金吗 编辑:程序博客网 时间:2024/04/29 06:24

android camera使用ISO值录制视频

我的应用是使用自定义camera对着一个led灯箱录制视频,该led灯的频率是1000HZ,同时我使用高ISO值录像,最终想要的效果如下图,屏幕中会出现明显黑色条纹
这里写图片描述
要达到这样的效果,要对camera的参数进行以下设置:【代码1】

p.setSceneMode(Camera.Parameters.SCENE_MODE_AUTO);p.setAntibanding(Camera.Parameters.ANTIBANDING_AUTO);p.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);p.set("camera-mode", 1);p.set("qc-camera-features", 1);p.set("iso","ISO3200");camera.setParameters(p);camera.setPreviewDisplay(holder);camera.startPreview();

然后,我初始化MediaRecorder,对视频进行录制。代码如下:【代码2】

camera.unlock();mRecorder.setOnInfoListener(this);mRecorder.setOnErrorListener(this);mRecorder.setCamera(camera);mRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);mRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);mRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));mRecorder.setOutputFile(path);mRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());mRecorder.prepare();mRecorder.start();

结果是视频一开始录制,黑色条纹消失了,变成了下图的样子:
这里写图片描述
调用MediaRecorder.stop()方法停止录制后,黑色条纹又重新出现。这个时候我使用锁定自动曝光方法:【代码3】

p = camera.getParameters();p.setAutoExposureLock(true);camera.setParameters(p);

重新执行上述【代码2】的代码,重新开始第二次录制,此时整个录制过程屏幕都会有黑色条纹了,达到我所要的效果。

为什么第一次预览有效果的时候不锁定曝光呢?我测试过,一开始锁定曝光,第一次录制的时候黑色条纹仍然会消失,而且第一次录制结束后黑色条纹不再显示出来,需要先停止预览,再重新打开预览才恢复有黑色条纹!

我想第一次录制的时候就能够录制黑色条纹。这个黑色条纹出现,应该是和感光度有关的,我一直不清楚为什么第一次录制条纹会消失,录制前会自动聚集一次?导致锁定自动曝光失败?还是什么其它原因?第一次录制结束后又恢复有黑色条纹?为什么?

0 0