[绍棠] iOS视频播放AVPlayer的视频内容拉伸设置

使用其中一个叫 videoGravity 的属性,默认设置了AVLayerVideoGravityResize,查看该属性以及相关的其他属性值发现有3种值可以设置,

AVLayerVideoGravityResizeAspect

AVLayerVideoGravityResizeAspectFill

AVLayerVideoGravityResize

逐一试用后发现了其中的一些不同,在这里分享一下,可能我说的不太标准,只是个人的一些理解。

开始把描述放到百度翻译上去翻译了一下,

1.Preserve aspect ratio; fit within layer bounds
2.Preserve aspect ratio; fill layer bounds
3.Stretch to fill layer bounds

解释是

1.保持纵横比;适合层范围内
2.保持纵横比;填充层边界
3.拉伸填充层边界

再看我分别设置了


1. wmPlayer.playerLayer.videoGravity =AVLayerVideoGravityResizeAspect

2. wmPlayer.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill

3. wmPlayer.playerLayer.videoGravity = AVLayerVideoGravityResize



第1种模式AVLayerVideoGravityResizeAspect是按原视频比例显示,是竖屏的就显示出竖屏的,两边留黑;

第2种AVLayerVideoGravityResizeAspectFill是以原比例拉伸视频,直到两边屏幕都占满,但视频内容有部分就被切割了;

第3种AVLayerVideoGravityResize是拉伸视频内容达到边框占满,但不按原比例拉伸,这里明显可以看出宽度被拉伸了。


有点像UIImageView的ContentMode设置,这里是个人对这个属性值得一些理解,有不足还请包涵。


你可能感兴趣的:(ios,avplayer)