【问题标题】:macOS App using iPhone camera使用 iPhone 相机的 macOS 应用程序
【发布时间】:2017-12-21 14:37:44
【问题描述】:

我正在尝试构建一个简单的 swift (4) macOS 应用程序来使用连接到我的 Mac 的 iPhone 相机。 我已经启动了一个空白的 macOS 模板应用程序并打开了沙箱以允许摄像头、麦克风和 USB,并将以下代码添加到我的 ViewController。

import Cocoa
import AVFoundation

class ViewController: NSViewController {
@IBOutlet weak var camera: NSView!

override func viewDidLoad() {
    super.viewDidLoad()
    camera.layer = CALayer()
    let session:AVCaptureSession = AVCaptureSession()
    session.sessionPreset = AVCaptureSession.Preset.high
    let device:AVCaptureDevice = (AVCaptureDevice.default(for: AVMediaType.video))!
   // let listdevices = (AVCaptureDevice.devices())


do {
    try session.addInput(AVCaptureDeviceInput(device: device))

    //Preview
    let previewLayer:AVCaptureVideoPreviewLayer = AVCaptureVideoPreviewLayer(session: session)
    let myView:NSView = self.view
    previewLayer.frame = myView.bounds
    previewLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
    self.camera.layer?.addSublayer(previewLayer)
    session.startRunning()

           // print(listdevices)
            // print(device)
    } catch {
         print(device)
            }


}


override var representedObject: Any? {
    didSet {
    // Update the view, if already loaded.
    }
}


 }

在故事板中,我放入了自定义视图。

应用程序构建正常,使用 facetime 摄像头没问题,但是连接 iPhone 后,我看不出它是否可以作为 AVFoundation 使用的设备。不确定如何让 previewLayer 选择 USB 相机以使用又名 iPhone 的后续步骤。

p.s 需要为所有相机方向为横向

【问题讨论】:

  • 我已经编辑了代码并将自定义视图连接到 IBOutlet,这意味着这现在适用于 mac 上的 Facetime 相机。不确定这是否能让我访问 USB 相机设备(也就是我的 iPhone)

标签: swift macos camera avfoundation


【解决方案1】:

根据thisApple 开发者论坛的帖子,不支持从 macOS 应用程序捕获连接的 iOS 设备的相机。

您可以做的最接近的事情(如帖子所示)是在相机 (Camera.app) 运行时捕获 iOS 设备的屏幕,有效地捕获实时相机预览(或如果您想从捕获的屏幕中删除相机应用程序的 UI,您可以在 iOS 中滚动您自己的配套相机应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    相关资源
    最近更新 更多