[英]Swift AVPlayerLayer videoGravity .resizeAspect only respects height not width
我有一個 AVPlayer 和 AVPlayerLayer 嵌入在一個簡單的 UIView 中。 這會播放電影,但調整playerLayer.videoGravity
只會影響電影的相對高度:
.resizeAspect
填充到videoview
的一側並裁剪高度.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()
}
這里的問題是playerLayer.setAffineTransform(CGAffineTransform(rotationAngle: CGFloat((-90 * Double.pi)/180)))
和視頻/圖像大小。 之前使用了錯誤的高度/寬度(並且需要轉置)。 這解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.