我正在实施相机应用程序。它需要允许用户控制ISO和EV来拍照和录制视频。
拍摄照片时,我先使用自动设置拍照。然后,读取结果图片的EXIF以获得ISO和曝光值,以计算手动ISO和曝光时间的适当组合。例如,让我们假设在自动设置下,我拍照并通过读取EXIF元数据发现其ISO为400且曝光时间为1/30秒。但是用户想要使用ISO 200而不是ISO 400,根据自动设置的捕获结果,我可以计算当ISO为200时,曝光时间需要为1/15秒。如果用户也将EV设置为+1,我可以计算曝光时间为1/7秒。您可能想问我为什么需要自己计算这些值?这是因为SENSOR_SENSITIVITY
和SENSOR_EXPOSURE_TIME
设置仅在CONTROL_AE_MODE
设置为CONTROL_AE_MODE_OFF
时才有效。当AE模式关闭时,我需要完全手动设置曝光设置。但是我尝试CONTROL_AE_EXPOSURE_COMPENSATION
设置有一个奇怪的事情,它应该设置expusure值(EV)。但无论哪种AE模式,CONTROL_AE_EXPOSURE_COMPENSATION
都无效。这就是为什么即使手动将ISO设置为自动,我仍然可以自己计算曝光时间。
拍摄照片的想法已经实施,效果很好。但是对于录制视频,我不知道如何让用户手动设置ISO和EV。我该怎么办?