簡體   English   中英

Swift-未執行captureOutput

[英]Swift - captureOutput is not being executed

我目前正在嘗試為我的應用實施相機實時供稿。 我已經設置好了,但不知怎么了。 據我了解, captureOutput應該在每次識別到幀時執行,並且打印消息應該在控制台中輸出,但是不知何故-控制台不會顯示print命令。

是否有人在代碼內部看到任何可能的錯誤?

我不知道這是否與我的問題有關,但是在應用程序啟動時,控制台顯示以下內容:

[BoringSSL] nw_protocol_boringssl_get_output_frames(1301)[C1.1:2] [0x106b24530]獲取輸出幀失敗,狀態8196

import UIKit
import AVKit
import Vision

class CameraViewController: UIViewController, AVCaptureVideoDataOutputSampleBufferDelegate {    

    override func viewDidLoad() {
        super.viewDidLoad()

        let captureSession = AVCaptureSession()

        guard let captureDevice = AVCaptureDevice.default(for: .video) else { return }
        guard let input = try? AVCaptureDeviceInput(device: captureDevice) else{ return }
        captureSession.addInput(input)

        captureSession.startRunning()

        let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
        view.layer.addSublayer(previewLayer)
        previewLayer.frame = view.frame

        let dataOutput = AVCaptureVideoDataOutput()
        dataOutput.setSampleBufferDelegate(self, queue: DispatchQueue(label: "videoQueue"))
        captureSession.addOutput(dataOutput)

        // let request = VNCoreMLRequest
        // VNImageRequestHandler(cgImage: <#T##CGImage#>, options: [:]).perform(request)
    }

    func captureOutput(_ output: AVCaptureOutput, didDrop sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
        print("Es hat funktioniert")
    }

}

您需要實現captureOutput(_:didOutput:from:)而不是captureOutput(_:didDrop:from:)

func captureOutput(_ output: AVCaptureOutput,
                            didOutput sampleBuffer: CMSampleBuffer,
                            from connection: AVCaptureConnection) {
     print("Es hat funktioniert") 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM