Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Can';不要在Swift中使用前置摄像头_Ios_Swift_Camera - Fatal编程技术网

Ios Can';不要在Swift中使用前置摄像头

Ios Can';不要在Swift中使用前置摄像头,ios,swift,camera,Ios,Swift,Camera,我想建造前置摄像头,但无法在Swift中建造前置摄像头,即使我可以建造后置摄像头 当我只把“后”改为“前”时,相机坏了 如何使用前置摄像头 var captureSesssion: AVCaptureSession! var stillImageOutput: AVCapturePhotoOutput? var previewLayer: AVCaptureVideoPreviewLayer? var captureDevice : AVCaptureDevice! override func

我想建造前置摄像头,但无法在Swift中建造前置摄像头,即使我可以建造后置摄像头

当我只把“后”改为“前”时,相机坏了

如何使用前置摄像头

var captureSesssion: AVCaptureSession!
var stillImageOutput: AVCapturePhotoOutput?
var previewLayer: AVCaptureVideoPreviewLayer?
var captureDevice : AVCaptureDevice!

override func viewDidLoad() {
    super.viewDidLoad()

    captureSesssion = AVCaptureSession()
    stillImageOutput = AVCapturePhotoOutput()

    captureSesssion.sessionPreset = AVCaptureSessionPreset1920x1080 

    captureDevice = AVCaptureDevice.defaultDevice(withDeviceType: .builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: .front) 
    //When change "front" to "back", camera is built.

    do {
       let input = try AVCaptureDeviceInput(device: captureDevice)

       if (captureSesssion.canAddInput(input)) {
           captureSesssion.addInput(input)

           if (captureSesssion.canAddOutput(stillImageOutput)) {
               captureSesssion.addOutput(stillImageOutput)
               captureSesssion.startRunning() 

               previewLayer = AVCaptureVideoPreviewLayer(session: captureSesssion)
               previewLayer?.videoGravity = AVLayerVideoGravityResizeAspect 
               previewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.portrait 

               self.view.layer.addSublayer(previewLayer!)

               previewLayer?.position = CGPoint(x: self.view.frame.width / 2, y: self.view.frame.height / 2)
               previewLayer?.bounds = self.view.frame
           }
       }
    }
    catch {
        print(error)
    }

iPhone7和iPhone7Plus的前置摄像头可以录制1080p,但在旧款机型上只能录制720p。因此,您只需更改会话预设,即:

captureSesssion.sessionPreset = AVCaptureSessionPreset1280x720
Swift 4:

captureSesssion.sessionPreset = AVCaptureSession.Preset.hd1280x720

iPhone7和iPhone7Plus的前置摄像头可以录制1080p,但在旧款机型上只能录制720p。因此,您只需更改会话预设,即:

captureSesssion.sessionPreset = AVCaptureSessionPreset1280x720
Swift 4:

captureSesssion.sessionPreset = AVCaptureSession.Preset.hd1280x720

您的测试设备的自拍摄像头是否在摄像头应用程序上工作?是的,我使用iPhone SE,可以在摄像头应用程序上使用前置摄像头。您的测试设备的自拍摄像头是否在摄像头应用程序上工作?是的,我使用iPhone SE,可以在摄像头应用程序上使用前置摄像头。