今天我第一次为 Mac 编写代码。我想要做的是访问默认相机并显示预览。第二步,如果我需要,我会记录或拍一张快照。对于第一步,我编写了以下代码
import Cocoa
import AVFoundation
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
var session:AVCaptureSession = AVCaptureSession()
session.sessionPreset = AVCaptureSessionPresetLow
var device:AVCaptureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
//Preview
var previewLayer:AVCaptureVideoPreviewLayer = AVCaptureVideoPreviewLayer(session: session)
var myView:NSView = self.view
previewLayer.frame = myView.bounds
previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
self.view.layer?.addSublayer(previewLayer)
session.startRunning()
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}
我没有看到此代码正在打开我的笔记本电脑默认摄像头或在 View 上显示任何内容。我在这里做错了什么?我可以寻找任何方向或任何示例,即使它在 Obj-C 中真的很有帮助。 TIA。
最佳答案
在你的代码中
self.view.layer?.addSublayer(previewLayer)
不会被执行,因为 self.view.layer
是 nil
所以不会被执行。
唉,这似乎不是唯一的问题,因为即使在添加图层时相机也不会开始工作。您可能需要深入研究:
https://developer.apple.com/library/mac/samplecode/AVRecorder/Introduction/Intro.html
关于xcode - 如何使用 swift xcode 访问 Mac 默认摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28783312/