视频显示边缘空白的真相

         在多媒体开发过程中,难免会使用到video这一类型。但一直有部分开发者或产品人员总提出 “视频画面没有充满”其给定的窗口,其原因在于对视频不了解,想当然的去认为要“充满”。被问到此问题只能苦笑一声,哭笑不得。

         先看下几个效果:

  1.          左右空白       显示窗口320*240 ,视频分辨率720*576
  2.          上下空白       显示窗口320*240 ,视频分辨率1280*720
  3.          上下左右空白  显示窗口320*240,视频分辨率240*180 ,这种很少见或没见过吧。
        看了上面3个图,是否想到了什么?没想到继续看下面:
        第1、2都是正常的显示样子,由于窗口和画面长宽比例比一致,留空白是为了保持 画面比例,“适应窗口”显示,如何适应,一句话:总有一边充满就对了。此时和原有的画面比例是一直的。此时如要完全充满,那就是拉伸的,后果就是变宽(1)或变长(2);        举个例子,如果视频显示的是一个人,第一种全部充满后脸会变胖 (宽),第二种全部充满后脸会变长(竖直方向)。至于第三种窗口和画面长宽比刚好相等,都是4:3,因此刚好能填充窗口而不变形,但由于放大到窗口大小,实际效果可能会变模糊,但一般都会充满,这也是很少或没有见过第三种显示方式的原因。
        
此外,由于平台的不同以及产品设计不同,不论是适应宽还是高,渲染的时候都有不同程度的缩放,可能是放大,也可能是缩小,看起来画面比例是一样的就是正确的。当然,有的产品设计 不计较变形问题就要充满窗口,这就需要渲染有模式可选。
        
        Gensee Android sdk的GSVideoView 根据用户的不同需求,提供了如下接口: setRenderMode(RenderMode renderMode) 
        
      
public enum RenderMode {
		RM_FILL_XY,                    //填充窗口(画面比失调)
		RM_ADPT_XY,                    //适应窗口(窗口可能会有边缘空白)
		RM_CENTER,RM_FILL_CENTER_CROP  //以小边放大或缩小 并裁剪后充满窗口(一般用于手机全屏直播)
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值