如何在 Youtube Autoplay 新闻提要等回收站视图中检测查看可见性(80% 左右),当 ~80 可见时播放视频
Posted
技术标签:
【中文标题】如何在 Youtube Autoplay 新闻提要等回收站视图中检测查看可见性(80% 左右),当 ~80 可见时播放视频【英文标题】:How to detect to view visibility(80% or so) in a recycler view like Youtube Autoplay news feed plays video when ~80 is visible 【发布时间】:2020-07-15 11:00:33 【问题描述】:如何在 Youtube Autoplay 新闻提要等回收站视图中检测查看可见性(80% 左右),当大约 80 个可见时播放视频。并且视频播放在滚动时停止并开始在空闲状态下播放,但最初,如果视频处于播放状态,即使处于滚动状态,它也会继续在该状态下播放,直到大约 80 度可见,然后停止,所以如何这完成了。 感谢您的想法和示例。
我尝试过使用回收器视图 onChildDetached 方法,但仅当完整视图超出可见屏幕区域时才会触发事件。 谢谢。
【问题讨论】:
比较视图高度和视图可见高度(getGlobalVisibleRect) 这需要在滚动过程中完成,那么如何触发类似的东西。 View 可以在滚动过程中随时消失。 【参考方案1】:您可以像这样播放第一个完全可见的项目。如果可能有 2 个完整的可见项目,并且您希望它们都播放而不是“findFirstCompletelyVisibleItemPosition”,则可以遍历 layoutManagers 子项并将它们的可见高度与实际高度进行比较。
val scrollListener = object : RecyclerView.OnScrollListener()
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int)
val layoutManager = (recyclerView.layoutManager as LinearLayoutManager)
super.onScrolled(recyclerView, dx, dy)
val firstItem = layoutManager.findFirstCompletelyVisibleItemPosition()
//get the item at position fistItem and play
yourRecyclerView.addOnScrollListener(scrollListener)
【讨论】:
以上是关于如何在 Youtube Autoplay 新闻提要等回收站视图中检测查看可见性(80% 左右),当 ~80 可见时播放视频的主要内容,如果未能解决你的问题,请参考以下文章
Youtube iframe api allow="autoplay" Chrome 65
有没有办法为嵌入式YouTube视频创建委派菜单(youtube autoplay chrome)
带有“autoplay=1”的嵌入式 youtube 视频。它是不是计入观看次数?