I am working on one iOS App and needs to be able to detect if the device has an external camera such as DSLR. I am using ImageCaptureCore framework for that and using its ICDeviceBrowserDelegate to detect connected cameras to my Mac or iPhone. But, this delegates never called. Can anyone help on this ? This is working for Mac app though...
class CameraFinder: NSObject, ICDeviceBrowserDelegate {
private var deviceBrowser: ICDeviceBrowser
var devices: [ICCameraDevice: CameraDeviceItem] = [:]
override init() {
self.deviceBrowser = ICDeviceBrowser()
super.init()
deviceBrowser.delegate = self
deviceBrowser.start()
print("[DeviceFinder] started ICDeviceBrowser; connect camera device now")
}
deinit {
deviceBrowser.stop()
}
// MARK: ICDeviceBrowserDelegate
func deviceBrowser(_ browser: ICDeviceBrowser, didAdd device: ICDevice, moreComing: Bool) {
guard let device = device as? ICCameraDevice else {
return
}
devices[device] = CameraDeviceItem(device)
}
func deviceBrowser(_ browser: ICDeviceBrowser, didRemove device: ICDevice, moreGoing: Bool) {
guard let device = device as? ICCameraDevice else {
return
}
devices.removeValue(forKey: device)
}
}