Instance Property
avSampleBufferDisplayLayer
取用內部的 AVSampleBufferDisplayLayer(僅 SampleBuffer 模式可用)。
@MainActor var avSampleBufferDisplayLayer: AVSampleBufferDisplayLayer? { get }Discussion
用於 iOS 畫中畫 —— AVPictureInPictureController 僅支援此類 layer、不支援 Metal。
renderer 常駐(setupRenderLayer 一次建好、靠 isHidden 切換),故 Metal 模式下 該 layer 仍存在、只是沒有畫面在跑(renderWithSampleBuffer 不被呼叫)。 回傳 nil 而非空白 layer,避免 PiP 開起來是黑畫面。
使用前需先設 renderMode = .sampleBuffer:
videoView.renderMode = .sampleBuffer
guard let layer = videoView.avSampleBufferDisplayLayer else { return }
建議於 Main Thread 存取。