我有HDR应用程序拍摄三张具有不同曝光补偿设置的照片,但拍摄后不久我无法更改曝光补偿值。对财产的更新时间有任何限制吗?
for var i = 0 ; i < 3 ; i++ {
switch i {
case 0:
camera.setCameraPropertyValue("EXPREV", value: "<EXPREV/+2.0>", error: nil)
case 1:
camera.setCameraPropertyValue("EXPREV", value: "<EXPREV/0.0>", error: nil)
case 2:
camera.setCameraPropertyValue("EXPREV", value: "<EXPREV/-2.0>", error: nil)
default:
camera.setCameraPropertyValue("EXPREV", value: "<EXPREV/0.0>", error: nil)
}
camera.takePicture( nil,
progressHandler: nil,
completionHandler:{ info -> Void in dispatch_semaphore_signal(semaphore)},
errorHandler: {error -> Void in dispatch_semaphore_signal(semaphore)} )
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER)
}
答案 0 :(得分:2)
相机访问存储卡时无法更改任何相机属性。在更新相机属性之前,请检查mediaBusy
是否为false。
尝试在最后semaphore_wait()
之后插入以下代码。
while camera.mediaBusy {
NSThread.sleepForTimeInterval(0.2)
}