Tôi hiện đang sử dụng AVFoundation để chạy máy ảnh của mình, nhưng tôi muốn có thể phát hiện khi máy ảnh lấy nét xong. Có cách nào để làm điều này không?Phát hiện Khi máy ảnh AVFoundation kết thúc lấy nét
Cảm ơn rất nhiều !!
Tôi hiện đang sử dụng AVFoundation để chạy máy ảnh của mình, nhưng tôi muốn có thể phát hiện khi máy ảnh lấy nét xong. Có cách nào để làm điều này không?Phát hiện Khi máy ảnh AVFoundation kết thúc lấy nét
Cảm ơn rất nhiều !!
Theo doc
Bạn có thể sử dụng
adjustingFocus
tài sản để xác định xem một thiết bị hiện đang tập trung. Bạn có thể quan sát thuộc tính sử dụngkey-value observing
để được thông báo khi thiết bị khởi động và ngừng lấy nét.Nếu bạn thay đổi các thiết lập chế độ tập trung, bạn có thể trả lại cho cấu hình mặc định như sau:
Trong khởi động:
[[[captureManager videoInput] device] addObserver:self forKeyPath:@"adjustingFocus" options:NSKeyValueObservingOptionNew context:nil];
và sau đó:
bool focusing = false;
bool finishedFocus = false;
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
//[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
if([keyPath isEqualToString:@"adjustingFocus"]){
BOOL adjustingFocus = [ [change objectForKey:NSKeyValueChangeNewKey] isEqualToNumber:[NSNumber numberWithInt:1] ];
if (adjustingFocus) {
focusing=true;
}
else {
if (focusing) {
focusing = false;
finishedFocus = true;
}
}
}
}
Tôi đoán nó xứng đáng để mở rộng khi Shubhank trả lời cho những người như tôi, những người không thích đọc táo (xuất sắc) tài liệu đề xuất cho một vài mục đích để hủy khung hình xuất hiện trong khi AVCaptureDevice đang điều chỉnh độ phơi sáng và có thể, điểm trắng
Cảm ơn @ alexi-akl! Đây là mã tôi đã mất tích ... :) – cdescours
vui vì câu trả lời của tôi là hữu ích :) @cdescours –