[英]Swift AVPlayerLayer videoGravity .resizeAspect only respects height not width
I have an AVPlayer and AVPlayerLayer embedded in a simple UIView.我有一个 AVPlayer 和 AVPlayerLayer 嵌入在一个简单的 UIView 中。 This plays the movie but adjusting playerLayer.videoGravity
only effects the movies relative height:这会播放电影,但调整playerLayer.videoGravity
只会影响电影的相对高度:
.resizeAspect
fills all the way to side of the videoview
UIView and crops the height .resizeAspect
填充到videoview
的一侧并裁剪高度.resizeAspectFill
looks like a zoomed in version of the stretched .resizeAspect
.resizeAspectFill
看起来像拉伸后的.resizeAspect
的放大版本 var player = AVPlayer()
@IBOutlet weak var videoview: UIView!
override func viewDidAppear(_ animated: Bool) {
player = AVPlayer(url: url)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.setAffineTransform(CGAffineTransform(rotationAngle: CGFloat((-90 * Double.pi)/180)))
playerLayer.frame = videoview.bounds
playerLayer.videoGravity = .resizeAspect
videoview.layer.addSublayer(playerLayer)
player.play()
}
The issue here was with playerLayer.setAffineTransform(CGAffineTransform(rotationAngle: CGFloat((-90 * Double.pi)/180)))
and the video/image size.这里的问题是playerLayer.setAffineTransform(CGAffineTransform(rotationAngle: CGFloat((-90 * Double.pi)/180)))
和视频/图像大小。 The wrong height/width were used previously (and needed to be transposed).之前使用了错误的高度/宽度(并且需要转置)。 This resolved the issue.这解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.