Ios AVSampleBufferDisplayLayer:更改videoGravity动画
在我的项目中,我使用的是AVSampleBufferDisplayLayer和AVPlayerLayer。其中Bot具有相似的接口和视频重力特性。 当我更改AVPlayerLayer videoGravity属性时,视频会立即使用动画效果重新调整大小。使用AVSampleBufferDisplayLayer videoGravity,在我改变设备方向,然后在没有动画的情况下重新调整视频大小之前,不会发生任何事情Ios AVSampleBufferDisplayLayer:更改videoGravity动画,ios,objective-c,Ios,Objective C,在我的项目中,我使用的是AVSampleBufferDisplayLayer和AVPlayerLayer。其中Bot具有相似的接口和视频重力特性。 当我更改AVPlayerLayer videoGravity属性时,视频会立即使用动画效果重新调整大小。使用AVSampleBufferDisplayLayer videoGravity,在我改变设备方向,然后在没有动画的情况下重新调整视频大小之前,不会发生任何事情 如何将AVSampleBufferDisplayLayer的videoGravity
如何将AVSampleBufferDisplayLayer的videoGravity更改为与AVPlayerLayer类似的行为?我找到的唯一解决方案是重新初始化AVSampleBufferDisplayLayer,例如:
var displayBufferLayer: AVSampleBufferDisplayLayer?
...
func reinitBufferLayer(videoGravity: AVLayerVideoGravity) {
displayBufferLayer?.flush()
displayBufferLayer?.stopRequestingMediaData()
displayBufferLayer?.removeFromSuperlayer()
let bufferLayer = AVSampleBufferDisplayLayer()
bufferLayer.frame = view.bounds
bufferLayer.videoGravity = videoGravity // (i.e. .resizeAspectFill)
bufferLayer.isOpaque = true
view.layer.insertSublayer(bufferLayer, at: 0)
self.displayBufferLayer = bufferLayer
}
你最后是怎么解决的?