Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
leeyushi opened this issue Nov 5, 2019 · 27 comments

Comments

@leeyushi
Copy link

leeyushi commented Nov 5, 2019

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

@yangchaojiang
Copy link
Owner

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

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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

@yangchaojiang
Copy link
Owner

有截图吗

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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

@yangchaojiang
Copy link
Owner

这就比较恶心了 苦笑苦笑

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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

@yangchaojiang
Copy link
Owner

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

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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

@yangchaojiang
Copy link
Owner

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

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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

@yangchaojiang
Copy link
Owner

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

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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

@yangchaojiang
Copy link
Owner

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

@yangchaojiang
Copy link
Owner

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

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

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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

@yangchaojiang
Copy link
Owner

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

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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

@yangchaojiang
Copy link
Owner

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

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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);

@yangchaojiang
Copy link
Owner

这个我早适配了

@yangchaojiang
Copy link
Owner

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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

@yangchaojiang
Copy link
Owner

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

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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

@yangchaojiang
Copy link
Owner

有局部文件自己改的 亲

@leeyushi
Copy link
Author

leeyushi commented Nov 5, 2019

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants