我正在尝试制作一个 Swift OsX 应用程序,它可以打开相机并显示正在录制的内容。
现在它实际上只是一个 ViewController
,绿灯亮起让我觉得录音开始了,但屏幕保持灰色,什么也没有出现。
这是 ViewController
的代码:
class ViewController: NSViewController, AVCaptureVideoDataOutputSampleBufferDelegate {
let session = AVCaptureSession()
let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
@IBOutlet weak var imgView: NSImageView!
func setUpSession() {
self.session.sessionPreset = AVCaptureSessionPresetLow
// Add the default input camera
do {
let input = try AVCaptureDeviceInput(device: device)
self.session.addInput(input)
print("Input added.")
} catch let error as NSError {
print(error)
}
var previewLayer = AVCaptureVideoPreviewLayer(session: session)
previewLayer.frame = self.view.bounds
previewLayer.position = CGPointMake(0, 0)
previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
self.view.layer = previewLayer
self.session.startRunning()
print("Session running.")
}
override func viewDidLoad() {
super.viewDidLoad()
self.setUpSession()
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
最佳答案
试试 view.layer.addSublayer(previewLayer)
关于swift - 为什么我的 AVCaptureVideoPreviewLayer 不会出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38612405/