您可以定义标准ISO值列表:
let isos:[Float] = [32,50,64,80,100,125,160,200,250,320,400,500,640,800,1000,1250,1600,1800]
而到最小和最大ISO值拍摄装置过滤器的初始化后:
var isos_available:[Float] = []
for one_iso in isos {
if one_iso >= min_iso && one_iso <= max_iso {
isos_available.append(one_iso)
}
}
而且快门速度:
var shutters:[Float] = [1,2,4,8,15,30,60,125,250,500,1000,2000,4000,8000]
var shutters_available:[Float] = []
let min_seconds = CMTimeGetSeconds(self.device.activeFormat.minExposureDuration)
let max_seconds = CMTimeGetSeconds(self.device.activeFormat.maxExposureDuration)
for one_shutter in shutters {
let seconds = 1.0/Float64(one_shutter)
if seconds >= min_seconds && seconds <= max_seconds {
shutters_available.append(one_shutter)
}
}
好吧,我知道,我的意思是这样的:一个特定的设备可以允许范围从50到800,但作为iPhone/iPad进化,它可以从25到1600,3200,6400等。除非我建立一个可能的ISO列表,达到一个荒谬的价值并比较它,但这似乎是一个可以轻松破解的黑客。我预计会收到一系列可能的值,但无论如何。不管怎么说,还是要谢谢你。 – SpaceDog