AVPlayerLayer 为零

AVPlayerLayer is nil

我正在捕捉视频,捕捉完成后我想在我的 AVPlayerLayer 上预览捕捉的视频。

捕获视频后,我将 url 保存到 DocumentsDirectory。这个url也保存在AVCaptureFileOutputRecordingDelegate的“didFinishRecordingTo”函数中作为“outputFileURL”。

我将下面的代码写到 didFinishRecordingTo 函数中。

用相对 url 创建了一个 AVplayer,用相应的 AVPlayer 创建了一个 AVPlayerLayer 作为 "previewLayer"。但我仍然在打印下面的行,上面写着 "preview Layer nil" 我也试过 print(previewLayer) 但它说它是 nil。

为什么会发生这种情况?

欣赏

 private var previewLayer : AVPlayerLayer?

   let player = AVPlayer(url: outputFileURL)
    
    previewLayer? = AVPlayerLayer(player: player)
    previewLayer?.videoGravity = .resizeAspectFill
    previewLayer?.frame = cameraView.bounds
    print(previewLayer)
    guard let previewLayer = previewLayer else {
        print("preview Layer nil")
        return
    }
    
    cameraView.layer.addSublayer(previewLayer)
    previewLayer.player?.play()
    recordButton.isHidden = true

previewLayer? 中删除 ?(仅在下一行),因为这会使默认为

的行无用
previewLayer? = AVPlayerLayer(player: player)

nil = AVPlayerLayer(player: player)

剩下previewLayer nil ,所以让它成为

previewLayer = AVPlayerLayer(player: player)