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)
我正在捕捉视频,捕捉完成后我想在我的 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)