码迷,mamicode.com
首页 > 移动开发 > 详细

android camera使用ISO值录制视频

时间:2016-05-07 08:30:46      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:

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】的代码,重新开始第二次录制,此时整个录制过程屏幕都会有黑色条纹了,达到我所要的效果。

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

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

android camera使用ISO值录制视频

标签:

原文地址:http://blog.csdn.net/shellshine/article/details/51334730

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!