我正在創建一個鎖定相機焦點以進行視頻錄製的應用程序。我想鎖定焦點到無窮遠而無需用戶手動調整焦點。這可能嗎?謝謝!有沒有辦法以編程方式將iOS設備上的相機對焦設置爲無窮?
回答
這是禁用焦點的方式,將鎖定它所有的時間:
// Find a suitable capture device
AVCaptureDevice *cameraDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
// SETUP FOCUS MODE
if ([cameraDevice lockForConfiguration:nil]) {
[cameraDevice setFocusMode:AVCaptureFocusModeLocked];
[cameraDevice unlockForConfiguration];
}
else{
NSLog(@"error while configuring focusMode");
}
你是什麼意思「鎖定對焦到無窮大」?
鎖定焦點無限遠=鎖定焦點到最遠點可能 – jsrivo
這是一個有效的答案? – VansFannel
不幸的是,沒有。正如Artem所說,您可以將相機設置爲對焦鎖定模式;進入自動對焦模式(對焦,然後鎖定)或連續自動對焦模式,但無法爲相機提供特定的距離以進行對焦。
我已經能夠提出的最好的(用於曝光和白平衡控制,它們同樣受到限制)是讓用戶將相機指向適當的場景(在你的情況下,遠離某些事物)和讓他/她按下鎖定按鈕。在捕獲設備API
這是一個有效的答案? – VansFannel
有效答案?這是我發現的唯一途徑。您可以將相機的焦點設置爲「鎖定」或「解鎖」,您可以將其指定爲「現在聚焦並鎖定」(有關具體信息,請參閱https://developer.apple.com/library/mac/#documentation/ AVFoundation /參考/ AVCaptureDevice_Class /參考/的reference.html)。你不能告訴相機*注意什麼*,只有*當*進行對焦時。所以我唯一可以想到的將焦點鎖定到無限遠的方法是讓用戶將相機的焦點瞄準非常遠的地方,然後將其鎖定。如果你能找到更好的方法,請告訴我們! –
另一個問題:至少在曝光度和白平衡的情況下,鎖的狀態在應用程序的調用中被記住,但鎖定的值不是。如果我的應用程序退出活動狀態,然後再次變爲活動狀態,則攝像機會鎖定當前所看到的任何值,*不*以前的值:即使*狀態*被記住,*值*也會丟失。如果焦點的行爲方式相同,那麼取決於焦點鎖定的應用程序在背景時應將其關閉以避免無效值(我關閉了我的applicationWillResignActive:處理程序中的攝像頭鎖定,這似乎涵蓋了所有情況)。 –
AVCaptureDevice具有功能setFocusModeLockedWithLensPosition:completionHandler:
你可以用它來設置,以1.0來實現 「無限」 距離
func focusTo(value : Float) {
if let device = captureDevice {
if(device.lockForConfiguration(nil)) {
device.setFocusModeLockedWithLensPosition(value, completionHandler: { (time) -> Void in
//
})
device.unlockForConfiguration()
}
}
更新: 根據蘋果公司的文檔,1.0並不代表重點在無限。
做這個工作? –
[鏈接](https://developer.apple.com/documentation/avfoundation/avcapturedevice/1624643-lensposition) 可能的位置範圍是0.0到1.0,其中0.0是鏡頭可以聚焦的最短距離和1.0最遠的。請注意,1.0不代表無限遠處的焦點。默認值是1.0。 對我而言它有效 – EdiZ
- 1. 有沒有辦法以編程方式將ApartmentState設置爲STA?
- 2. 有沒有辦法在iPhone上以編程方式在iOS上設置UIBackgroundModes?
- 3. Python/Sqlite3 - 有沒有辦法以編程方式設置.nullvalue?
- 4. 有沒有辦法設置Android相機的焦距?
- 5. 有沒有辦法讓我的WCF設置以編程方式設置?
- 6. 有沒有辦法爲Android設備設置初始方向
- 7. 有沒有辦法以編程方式告訴設備的VM預算?
- 8. 有沒有辦法檢查iCloud備份是否爲iOS設備設置?
- 9. 有沒有辦法以編程方式root/unroot一個android設備?
- 10. 有沒有辦法以編程方式取消註冊推送通知設備?
- 11. 有沒有辦法在嵌入式jetty中以編程方式設置context-params?
- 12. 有沒有辦法將相機快速設置爲橫向模式?
- 13. 如何在iOS中以編程方式設置設備方向
- 14. 有沒有辦法以編程方式啓動Windows「設置麥克風」
- 15. 有沒有辦法從android設置背景:以編程方式繪製?
- 16. 有沒有辦法以編程方式檢測SET IDENTITY_INSERT xyz ON/OFF設置?
- 17. 有沒有辦法在Android設備上以編程方式執行出廠重置?
- 18. 有沒有辦法通過編程方式在BlackBerry上設置numlock?
- 19. 有沒有辦法以編程方式創建hyper-v機器?
- 20. 以編程方式設置對象的框架沒有效果
- 21. 如何以編程方式設置iOS設備時間?
- 22. 有沒有辦法在任何IOS設備上調試chrome
- 23. 有沒有辦法以編程方式配置鏟子?
- 24. 有沒有辦法以編程方式配置MDBs?
- 25. 物業沒有的drawRect方法設置 - iOS設備
- 26. 有沒有辦法將stdout設置爲二進制模式?
- 27. 有沒有辦法以編程方式更改手機上的Mac地址?
- 28. 以編程方式爲應用程序設置播放設備
- 29. 有沒有什麼辦法以編程方式設置Windows Phone設置(如屏幕亮度)?
- 30. 有沒有辦法爲RadioGroup設置BackgroundColor?
你有沒有找到辦法做到這一點? – VansFannel