yangchaojiang / yjPlay

一个支持自定义UI布局,流式API, 加密,直播 ,亮度,音量,快进等手势 ,广告视频预览,多种加载模式 ,多种分辨率切换 ,多种封面图, 自定义数据源,列表播放,倍数播放,边播变缓存<font color="red">不是使用AndroidVideoCache</font>,离线播放,神奇的播放器

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

视频在加载缓冲的时候(显示网络xxkb/s)这个时候控制器其它功能无法点击

leeyushi opened this issue · comments

视频在加载缓冲的时候(显示网络xxkb/s)这个时候网络加载布局是顶层的,覆盖掉了控制器的点击事件(比如下一个视频,上一个视频,全屏等功能点击都无法实现)

缓冲时候,就避免的进行操作哦。

我在小程序上看的可以操作,但是像优酷之类的不可以操作,那就先这样吧,等你把VideoPlayerView常量去掉,后面客户需要,通过重写应该也可以达到

视频点击全屏展示,左边有一个锁定屏幕的图标,这个图标在刘海屏的状态栏那里,无法点击,这个图标的ID名叫什么,我手动给它加一个状态栏间距上去

有截图吗

image
看到左边刘海屏(摄像头)那里的那个开锁的标志吗,这个标志一般是点击一下锁定屏幕,防止屏幕旋转,再点击一下解锁,可以正常旋转屏幕,就是这个图标,跑到状态栏去了

这就比较恶心了 苦笑苦笑

是的,要加一个状态栏间距上去
public static int getStatusBarHeight(Context context) {
Resources resources = context.getResources();
int resourceId = resources.getIdentifier("status_bar_height", "dimen", "android");
return resources.getDimensionPixelSize(resourceId);
}

这个没用的,不是状态栏的,刘海屏适配问题

我一般适配刘海屏,如果想让它填充全屏,就什么都不用做,如果不想让它跑到刘海屏里去,给元素加个状态栏高度的间距就行了,这个锁屏标志是横向展示的,加个左间距为状态栏的高度,我觉得应该就不会跑到刘海屏里去了,全屏手机应该不会有这个问题,但是我觉得加一个状态栏间距上去,对全屏手机也不会有什么影响的

在刘海的 手机 左边有黑边哦

image
这张图区别于上面那个图片没有黑边,你说的是这个黑边吗,如果是的话,有黑边是因为我设置的填充模式不对,或者是我的视频源不对,改一下填充模式或者视频源就可以了的

不适配的刘海,就有黑边的
图片

还有一个问题,按了那个锁的图标,改为锁住屏幕功能后,按Back键,还是会返回到小屏模式,正常来说,锁住屏幕按Back键应该也不可以返回的,除非解锁后才可以返回

噢噢噢噢那个 应该是bug 谢谢反馈

刘海屏 你有好的解决方案么/

了那个锁的图标,改为锁住屏幕功能后bug 解决了

“不适配的刘海,会有黑边”这句话我没理解,按照我的理解,一般设置app:resize_mode="match\fill"(强调填充屏幕),只是这样视频源不匹配的话,会有拉伸感,这个时候只要上传的时候注意一下视频源就行了,这样并不会有黑边,而那个锁,锁是一个子元素,只是改变锁的间距,应该不会影响到视频播放的父布局,所以也并不会有黑边,我最后上传的那张图,并没有黑边,所以我并不理解你所说的黑边是什么意思(按照我的理解是不会出现的)

那个没有关系,。系统强制性的
图片

是的,播放布局设置成match_parent,系统也会强制填充全屏,所以在我的理解里不会有黑边,如果还有就是要设置Window的flag参数了:
getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN , WindowManager.LayoutParams. FLAG_FULLSCREEN); requestWindowFeature(Window.FEATURE_NO_TITLE);

我已经设置, 需要设置刘海屏的设置Window的flag参数了:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);

常用参数:
setSystemUiVisibility(int visibility)传入的实参类型如下:
1.View.SYSTEM_UI_FLAG_VISIBLE :状态栏和Activity共存,Activity不全屏显示。也就是应用平常的显示画面(默认模式)
2.View.SYSTEM_UI_FLAG_FULLSCREEN :Activity全屏显示,且状态栏被覆盖掉(完全沉浸式)
3. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN :Activity全屏显示,但是状态栏不会被覆盖掉,而是正常显示,只是Activity顶层会被状态栏覆盖掉(沉浸式状态栏就是这个模式)
4.View.INVISIBLE : Activity全屏显示,隐藏状态栏(完全沉浸式,状态栏被隐藏掉)

这是一些常用参数,如果满足不了需求,具体的要去查看官方文档
//这个是可选择性使用的
requestWindowFeature(Window.FEATURE_NO_TITLE);

这个我早适配了

我知道了,这个适配太精细了,涉及到了很多知识,我是在外包公司,一般客户是没这么苛刻的要求的,如果在全屏状态下因为图片元素顶到了刘海区域里,导致那块区域法完全展现出来,我觉得有点吹毛求疵了,我的建议还是加个间距比较简单一点(毕竟锁屏按钮是单个元素,不像图片那样元素融为一体的),你发的那个参考资料如果可以解决的话,告诉我一下,我也去收藏一下,以防不时之需

我觉得最简单的按钮位置换一下

是的,放到右边就可以了,有一些APP就是放到右边的,放到右边也符合人的右手操作习惯

有局部文件自己改的 亲

对哦,所以刚开始我也打算自己在布局文件里改来着,但是不知道ID名,想要通过ID名起的一致,让你内部自动处理事件的
客户要求在横屏展示以后(在右边我自己自定义一个按钮),点击这个按钮以后,弹出一个布局容器或者窗口,在这里面进行一些功能操作,我构思了一会应该是可以实现的,框架的可定制要求还是蛮高的