之前使用AVPlayer全屏播放自己录制的视频时,在iPhone 7 Plus设备上没问题,但在iPhone X上播放就有上下留白的问题(如示意图)。
开始还以为是iPhone X安全区域的问题,后面发现原来是需要配置AVPlayerLayer的videoGravity属性。

@property(copy) AVLayerVideoGravity videoGravity;

typedef NSString * AVLayerVideoGravity NS_STRING_ENUM;

/*
 @constant AVLayerVideoGravityResizeAspect
 @abstract Preserve aspect ratio; fit within layer bounds.
 非均匀模式。两个维度完全填充至整个视图区域
 */
AVF_EXPORT AVLayerVideoGravity const AVLayerVideoGravityResizeAspect;


/*
 @constant AVLayerVideoGravityResizeAspectFill
 @abstract Preserve aspect ratio; fill layer bounds.
 等比例填充,直到一个维度到达区域边界
 */
AVF_EXPORT AVLayerVideoGravity const AVLayerVideoGravityResizeAspectFill;

/*
 @constant AVLayerVideoGravityResize
 @abstract Stretch to fill layer bounds.
 等比例填充,直到填充满整个视图区域,其中一个维度的部分区域会被裁剪
 */
AVF_EXPORT AVLayerVideoGravity const AVLayerVideoGravityResize;

示意图:

Logo

一站式 AI 云服务平台

更多推荐