我试图在视图控制器加载个人资料照片后立即获得相机预览,以加载实时视频。 但是,视频一开始没有显示。这是真正的iPhone,而不是

问题描述 投票:0回答:0
感谢您的任何建议。

旋转相机代码

@objc func showLivePreview(view: UIView) { var myPreviewLayer = AVCaptureVideoPreviewLayer() let captureSession = AVCaptureSession() var backCamera: AVCaptureDevice? var frontCamera: AVCaptureDevice? var currentCamera: AVCaptureDevice? var videoOutput = AVCaptureVideoDataOutput() // Step 1: Set up the preview layer myPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession) myPreviewLayer.videoGravity = .resizeAspectFill myPreviewLayer.connection?.videoOrientation = .portrait captureSession.sessionPreset = AVCaptureSession.Preset.photo let session = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: .video, position: .front) let devices = session.devices currentCamera = devices.first do{ let captureDeviceInput = try AVCaptureDeviceInput(device: currentCamera!) print(captureDeviceInput) captureSession.addInput(captureDeviceInput) let videoOutput = AVCaptureMovieFileOutput() captureSession.addOutput(videoOutput) }catch{ return } view.layer.addSublayer(myPreviewLayer) // Make layer rounded view.layer.cornerRadius = view.bounds.width / 2 view.layer.masksToBounds = true print("finished with layer. start camera") myPreviewLayer.session = captureSession let photoOutput = AVCapturePhotoOutput() if captureSession.canAddOutput(photoOutput ) { captureSession.addOutput(photoOutput ) } // Position layer in UI myPreviewLayer.frame = view.frame//was bounds // Start the session in background thread as per Thread Performance Checker DispatchQueue.global().async { captureSession.startRunning() }

相机是从使用情节板的Objective-C编写的VC中调用的。我尚未尝试定位相机,因此视图自我。视图只是故事板的主视图。

对象c

- (void)viewDidLoad { [super viewDidLoad]; [[Utilities shared] showLivePreviewWithView:self.view]; }


swift camera avfoundation avcapturesession avcapturedevice
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.