xcode - 如何使用 swift xcode 访问 Mac 默认摄像头

标签 xcode macos swift avcapturedevice

今天我第一次为 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.layernil 所以不会被执行。

唉,这似乎不是唯一的问题,因为即使在添加图层时相机也不会开始工作。您可能需要深入研究:

https://developer.apple.com/library/mac/samplecode/AVRecorder/Introduction/Intro.html

关于xcode - 如何使用 swift xcode 访问 Mac 默认摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28783312/

相关文章:

xcode - 场景类的更改导致错误,Xcode/Swift

ios - Swift 空数组 for 循环

ios - 面向 iPhone 开发人员的 Mac OS X 上的 OpenGL

macos - 设置 NSWindow 的初始大小

objective-c - 在 Objective-C 中转换快速重复数组

ios - AWS Cognito 必填字段 iOS

iphone - iOS 5 SDK 之前的 ARC 转换

ios - 为什么我打开应用程序时 swift 应用程序 IPA 会崩溃?

objective-c - 添加新的核心数据模型版本后出错

arrays - Swift:使用备用键的合并排序算法