大佬教程收集整理的这篇文章主要介绍了ios – Swift Playground iPad摄像头访问,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
> https://github.com/codepath/ios_guides/wiki/Creating-a-Custom-Camera-View
> https://github.com/francip/swift-playground-camera/blob/master/Camera.playground/Contents.swift
这是我的代码:
import UIKit import AVFoundation import PlaygroundSupport class MainViewController : UIViewController { private var _session: AVCaptureSession? private var _captureInput: AVCaptureInput? private var _stillImageOutput: AVCaptureStillImageOutput? private var _frontCamera: AVCaptureDevice? private var _previewView: UIView? private var _previewLayer: AVCaptureVideoPreviewLayer? public override func loadView() { print("loadView()") _previewView = UIView() guard let view = _previewView else { printError(errMsg: "View Could not be created!") return } view.BACkgroundColor = UIColor.brown self.view = view } public override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) // Create a capture session _session = AVCaptureSession() guard let session = _session else { printError(errMsg: "Session is empty!") return } session.beginConfiguration() session.sessionPreset = AVCaptureSession.Preset.photo // Get access to front camera _frontCamera = AVCaptureDevice.default(for: AVMediaType.video) guard let frontCamera = _frontCamera else { printError(errMsg: "Front camera not accessible!") return } do{ _captureInput = try AVCaptureDeviceInput(device: frontCamera) } catch let err as NSError { printError(errMsg: err.localizedDescription) return } // Add input to session guard let captureInput = _captureInput else { printError(errMsg: "Capture input not available!") return } if session.canAddInput(captureInput){ session.addInput(captureInput) } // Configurw the image output _stillImageOutput = AVCaptureStillImageOutput() guard let sillImageOutput = _stillImageOutput else { printError(errMsg: "Image output not available!") return } sillImageOutput.outputSetTings = [AVVideoCodecKey: AVVideoCodecJPEG] if session.canAddOutput(sillImageOutput) { session.addOutput(sillImageOutput) } session.commitConfiguration() // Add video preview layer _previewLayer = AVCaptureVideoPreviewLayer(session: session) guard let previewLayer = _previewLayer else { printError(errMsg: "Preview layer not available!") return } previewLayer.videoGravity = AVLayerVideoGravity.resizeAspect previewLayer.connection?.videoOrientation = AVCaptureVideoOrientation.porTrait guard let view = _previewView else { printError(errMsg: "View not available!") return } view.layer.addSublayer(previewLayer) view.layer.borderWidth = 5 // Start the capture session session.startRunning() } public override func viewDidLoad() { super.viewDidLoad() } public override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) guard let previewLayer = _previewLayer else { printError(errMsg: "Preview layer not available!") return } guard let previewView = _previewView else { printError(errMsg: "View not available!") return } print(previewView.bounds) previewLayer.frame = previewView.bounds } private func printError(errMsg: String) { print("[Error]: " + errMsg) } } PlaygroundPage.current.liveView = MainViewController()
请忽略会话的私有变量等.我知道我可以/应该使它们成为本地方法.
iOS版本:10.3.3
游乐场应用程序:1.6.1
以上是大佬教程为你收集整理的ios – Swift Playground iPad摄像头访问全部内容,希望文章能够帮你解决ios – Swift Playground iPad摄像头访问所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。