开屏页视频, 往往是只针对 iPhone 6 的尺寸进行16 : 9的设计, 如果在 iPhone X 等不适16:9的机器上全屏显示, 视频必然会被异常拉伸, 需要一个合适的方案, 尽可能少的对视频进行拉伸或压缩.
短边适配
- 可以用不同手机屏幕的宽度或高度作为固定值, 根据视频宽高比算出相应的另一边, 根据需求对比选出哪一种方案.
- 如果把 iPhone 6像素大小的视频, 按照原尺寸搬到 iPhone X 上面并居中显示, 顶部和底部自然会有留白.
- 考虑把视频的高度设置为和 iPhone X 高度一致, 使用16:9的比例计算出该高度对应的宽度, 作为视频的宽度, 并居中显示, 会发现视频完全覆盖了屏幕, 没有半点儿拉伸, 只是视频的两边有些许裁剪..
- 代码如下:
- (CGRect)getBoundsByDiffrentDevice{
CGFloat height = 16 * SCREEN_WIDTH / 9.0;
CGRect rect = CGRectMake(0, 0, SCREEN_WIDTH, height);
if (height < SCREEN_HEIGHT) {
CGFloat width = SCREEN_HEIGHT * 9 / 16.0;
rect = CGRectMake(0, 0, width, SCREEN_HEIGHT);
}
return rect;
}
拓展
- 在显示缩略图的时候, 也可以使用类似思路进行优化显示的最大高度和宽度.