iOS 视频拉伸问题

在iOS开发中遇到使用视频播放器的案例,使用的是别人封装好的 WMPlayer 这么一个视频播放器,他使用的是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.拉伸填充层边界 再看我分别设置了 WMPlayer这个播放器中的3种不同属性值得结果图,

  1. wmPlayer.playerLayer.videoGravity =AVLayerVideoGravityResizeAspect
  2. wmPlayer.playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
  3. wmPlayer.playerLayer.videoGravity = AVLayerVideoGravityResize

输入图片说明

可以看出 第1种模式AVLayerVideoGravityResizeAspect是按原视频比例显示,是竖屏的就显示出竖屏的,两边留黑; 第2种AVLayerVideoGravityResizeAspectFill是以原比例拉伸视频,直到两边屏幕都占满,但视频内容有部分就被切割了; 第3种AVLayerVideoGravityResize是拉伸视频内容达到边框占满,但不按原比例拉伸,这里明显可以看出宽度被拉伸了。

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

原文链接

转载于:https://my.oschina.net/yup/blog/1582180

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值