多媒体适配视频尺寸后出现的一些问题。

1.分屏后画面边缘显示桌面背景
surfaceview 设置了透明属性导致。

mImageSubtitleSurfaceViewOne.getHolder().setFormat(PixelFormat.RGBA_8888);

去掉即可。
2.分屏后不会适配视频尺寸,导致画面被挤压或拉伸。
外部设置videoview的params导致。

public void setVideoDisplayFullScreen(int viewId) {

Log.i(TAG, "---setVideoDisplayFullScreen-- viewId:" + viewId);
FrameLayout.LayoutParams params = null;
params = new FrameLayout.LayoutParams(mScreenResolutionWidth , mScreenResolutionHeight, Gravity.CENTER);
videoPlayerHolder.getLinearLayout(viewId).setLayoutParams(params);
}

不要在外部设置params
3.竖屏后画面没有适配屏幕尺寸
竖屏后屏幕宽高变化但是视频宽高没有变化导致,交换宽高使之显示与横屏画面一致

if(((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation() == Surface.ROTATION_270){
int temp = widthMeasureSpec;
widthMeasureSpec = heightMeasureSpec;
heightMeasureSpec = temp;
Log.d(ONMEASURETAG, "widthMeasureSpec1 = " + widthMeasureSpec + "heightMeasureSpec1 = " + heightMeasureSpec);
}
if(((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getRotation() == Surface.ROTATION_270){
int temp = width;
width = height;
height = temp;
}

竖屏后改变视频方向暂时无需求,就没有去看怎么做,以后再探索。
4.分屏后画面闪烁。
导致原因猜测是videoview多次onMeasure()导致。
解决方法:manifest文件中对应活动下配置android:configChanges=“keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation|layoutDirection”>
这样活动就不会重建,就没问题了。
控制栏控件属性最好match_parent 因为活动不重建他不会自动加载对应布局,改为MATCH_PARENT后可以自动适配尺寸。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值