2016-06-17 2 views
0

Я сделал несколько поисков, и большинство ответов либо в Obj-C, либо не применимо к этому коду.Доступ к передней камеры с быстрым?

Я использую это руководство: http://drivecurrent.com/devops/using-swift-and-avfoundation-to-create-a-custom-camera-view-for-an-ios-app/

, и я получил этот код от него:

 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 
    } 

Задняя камера используется по умолчанию, но я не вижу, как прямо доступ переднюю камеру, чтобы люди могли переключаться взад и вперед.

+1

Вы можете проверить этот вопрос - http://stackoverflow.com/questions/29155623/how-to-get-the-front-camera-in-swift – Roy

+0

вы можете использовать простой класс, который может управлять сеансом камеры -> https: // github .com/maryamfekri/MFCameraManager –

ответ

3

Ваш настоящим аннулируется 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 
    } 
} 
0
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 –

Смежные вопросы