用swift访问前置摄像头?
问题描述:
我已经做了一些搜索,并且大多数答案都在Obj-C中,或者不适用于此代码。用swift访问前置摄像头?
,我已经得到了它这样的代码:
super.viewWillAppear(animated)
captureSession = AVCaptureSession()
captureSession!.sessionPreset = AVCaptureSessionPresetPhoto
let backCamera = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
let frontCamera = ????
var error: NSError?
var input: AVCaptureDeviceInput!
do {
input = try AVCaptureDeviceInput(device: backCamera)
} catch let error1 as NSError {
error = error1
input = nil
}
相机背面是默认的,但我没有看到如何直线上升访问前置摄像头为了让人们来回交换。
答
您目前无效frontCamera与您的backCamera之一具有相似的行为。您需要使用devicesWithMediaType(_ mediaType: String!)
,它允许将所有能够捕获AVMediaTypeVideo类型数据的设备存储在阵列中。
我不会建议调用该变量frontCamera因为你要存储了“设备”的阵列,但是这是代码实现
let frontCamera = AVCaptureDevice.devicesWithMediaType(AVMediaTypeVideo)
var captureDevice:AVCaptureDevice
for element in frontCamera{
let element = element as! AVCaptureDevice
if element.position == AVCaptureDevicePosition.Front {
captureDevice = element
break
}
}
答
func FromCamera() {
let imagepicker = UIImagePickerController()
imagepicker.delegate = self
imagepicker.allowsEditing = true
imagepicker.sourceType = UIImagePickerController.isSourceTypeAvailable(.Camera) ? .Camera : .PhotoLibrary
imagepicker.cameraDevice = UIImagePickerController.isCameraDeviceAvailable(.Front) ? .Front : .Rear
self.presentViewController(imagepicker, animated: true, completion: { _ in })
}
+0
试试这个,它在Swift 2.0中为我工作 –
你可能想看看这个问题 - http://*.com/questions/29155623/how-to-get-the-front-camera-in-swift – Roy
你可以使用可以管理摄像头会话的简单类 - > https:// github .com/maryamfekri/MFCameraManager –