最近有个需求需要做到全屏,然后只想到了放大铺满全局
或者重新启动个页面,然后把数据映射上去
想知道大家一般是怎么做的
您的每一个用心回答,都会让这个世界变得更美好一些!
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(final MediaPlayer mp) { // 点击过快可能导致mp未解析完成 故延时 handler.postDelayed(new Runnable() { // 太快可能黑屏 @Override public void run() { if (mp == null) { JXLog.e("mediaListener onPrepared mp is null "); return; } jxSurface.setPause(false); int vWidth = mp.getVideoWidth(); int vHeight = mp.getVideoHeight(); // 该LinearLayout的父容器 android:orientation="vertical" 必须 LinearLayout linearLayout = (LinearLayout) findViewById(R.id.layoutPlay); int lw = linearLayout.getWidth(); int lh = linearLayout.getHeight(); float wRatio = (float) vWidth / (float) lw; float hRatio = (float) vHeight / (float) lh; // 选择大的一个进行缩放 float ratio = Math.max(wRatio, hRatio); vWidth = (int) Math.ceil((float) vWidth / ratio); vHeight = (int) Math.ceil((float) vHeight / ratio); // 设置surfaceView的布局参数 LinearLayout.LayoutParams lp= new LinearLayout.LayoutParams(vWidth, vHeight); lp.gravity = Gravity.CENTER; jxSurface.setLayoutParams(lp); jxSurface.setPlaying(true); mediaPlayer.start(); } },100); } });
这个我最近的方案 固定宽高 等比缩小 如果是横屏的 会等比缩小成不会被拉伸的状态
我的是自定义surfaceview videoview限制太多了 有太多什么白边鸭 卡顿啊的bug 还是建议自己写成surfaceview好用点 你的问答我也不太懂 好宽泛哦
发现surfaceview没有铺满有黑边,然后用了surface.getholder().setfixsize,设置比例好了,
videoview那里没铺满,地下有黑边不管了,也没有看到有公开的方法设置视频比例,layoutparams这个是设置控件,大概就这样,谢谢各位大佬慷慨解答
你是怎么做到视频不全屏的?你是怎么做到某个尺寸的呢?
这个我最近的方案 固定宽高 等比缩小 如果是横屏的 会等比缩小成不会被拉伸的状态
我的是自定义surfaceview videoview限制太多了 有太多什么白边鸭 卡顿啊的bug 还是建议自己写成surfaceview好用点 你的问答我也不太懂 好宽泛哦
发现surfaceview没有铺满有黑边,然后用了surface.getholder().setfixsize,设置比例好了,
videoview那里没铺满,地下有黑边不管了,也没有看到有公开的方法设置视频比例,layoutparams这个是设置控件,大概就这样,谢谢各位大佬慷慨解答
你是怎么做到视频不全屏的?你是怎么做到某个尺寸的呢?