Olympus Camera Kit: Невозможно обновить значение компенсации экспозиции вскоре после

У меня есть приложение 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)
}

1 ответ

Решение

Вы не можете изменить какое-либо свойство камеры, пока камера обращается к карте памяти. Пожалуйста, проверьте, если mediaBusy false перед обновлением свойства камеры.

Попробуйте вставить код ниже после последнего semaphore_wait(),

while camera.mediaBusy {
    NSThread.sleepForTimeInterval(0.2)
}
Другие вопросы по тегам