【发布时间】:2016-04-18 10:03:47
【问题描述】:
我创建了一个自定义相机工具。现在,我正在尝试检查是否存在摄像头,但是,我只有模拟器(没有摄像头)和 iphone(两个摄像头)。我没有处理任何相机,但我不明白它是如何在一台相机上工作的,所以我也不知道如何帮助用户翻转相机
目前我正在使用dojo custom camera 使用以下外部库
位置.Back 和.Front 有效,我没有处理相机,但我不知道如何处理
处理 1 个摄像头的检查
根据前后摄像头的存在情况分配一个变量来控制前后摄像头(这样我就可以在 VC 中创建一个 uibutton 并控制前后摄像头的翻转)。
// I call addVideoInput() while initializing
func addVideoInput() {
if let device: AVCaptureDevice = self.deviceWithMediaTypeWithPosition(AVMediaTypeVideo, position: AVCaptureDevicePosition.Front) {
do {
let input = try AVCaptureDeviceInput(device: device)
if self.session.canAddInput(input) {
self.session.addInput(input)
}
} catch {
print(error)
}
}
}
func deviceWithMediaTypeWithPosition(mediaType: NSString, position: AVCaptureDevicePosition) -> AVCaptureDevice? {
let devices: NSArray = AVCaptureDevice.devicesWithMediaType(mediaType as String)
if devices.count != 0 {
if var captureDevice: AVCaptureDevice = devices.firstObject as? AVCaptureDevice {
for device in devices {
let d = device as! AVCaptureDevice
if d.position == position {
captureDevice = d
break;
}
}
print(captureDevice)
return captureDevice
}
}
print("doesnt have any camera")
return nil
}
【问题讨论】:
-
您是否要保留指向前后摄像头的指针?
-
“指针”是什么意思?我想分配一个变量来使用视图中的 UIButton 来控制前后摄像头之间的翻转。我可以在我的 ViewController 中初始化这个类时这样做。对于示例场景,'如果用户有 2 个摄像头 - 一个变量知道 Front 和 Back 都存在,并且显示最初从 Front 开始,然后 uibutton 在第一次运行时翻转到后置摄像头,依此类推..'; '否则,如果用户只有后置摄像头,隐藏用于翻转的 uibutton 并仅显示后置摄像头' - 这种方法
-
一个指针 = 指向一个对象的变量。
标签: ios iphone swift camera avfoundation