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】的代码,重新开始第二次录制,此时整个录制过程屏幕都会有黑色条纹了,达到我所要的效果。
为什么第一次预览有效果的时候不锁定曝光呢?我测试过,一开始锁定曝光,第一次录制的时候黑色条纹仍然会消失,而且第一次录制结束后黑色条纹不再显示出来,需要先停止预览,再重新打开预览才恢复有黑色条纹!
我想第一次录制的时候就能够录制黑色条纹。这个黑色条纹出现,应该是和感光度有关的,我一直不清楚为什么第一次录制条纹会消失,录制前会自动聚集一次?导致锁定自动曝光失败?还是什么其它原因?第一次录制结束后又恢复有黑色条纹?为什么?
时间: 2024-10-09 21:21:59