当 onBindViewHolder 调用播放视频时,如果没有在 recyclerview 中停止视频

Posted

技术标签:

【中文标题】当 onBindViewHolder 调用播放视频时,如果没有在 recyclerview 中停止视频【英文标题】:when onBindViewHolder called play video and if not stop video in recyclerview 【发布时间】:2019-06-07 00:06:56 【问题描述】:

我需要在调用onBindViewHolder() 时播放视频,然后如果该项目向下或向上滚动,我需要停止该视频。在RecyclerView的适配器中怎么做?

【问题讨论】:

@Midhilaj:你测试过这个解决方案吗? @aminography 我正在测试 【参考方案1】:

您可以覆盖适配器中的onViewAttachedToWindow(VH holder)onViewDetachedFromWindow(VH holder) 方法。然后在他们的身体里开始和停止视频。正如文档所说:

onViewAttachedToWindow 在此适配器创建的视图已附加到窗口时被调用。

onViewDetachedFromWindow 在此适配器创建的视图已与其窗口分离时调用。

视觉效果:

【讨论】:

@pskink:是的,伙计,当每个项目超出屏幕矩形时,就会调用此方法。 @pskink:我已经开发并添加了它的工作视觉结果。 当您使用onViewRecycled 时,可能不会通过将视图移出可见区域来调用它。因为目前可能不需要回收视图。 onViewAttachedToWindow 被调用但 onViewDetachedFromWindow 未被调用 可能是这个问题***.com/questions/54156630/…【参考方案2】:

在这里我为你找到了一些链接:

Implementing video playback in a scrolled list (ListView & RecyclerView) https://github.com/Krupen/AutoplayVideos https://ene.im/2017/07/09/toro-101-how-to-1/

看到这些链接,你就可以理解这个概念了。

对于你的问题,我只是在谷歌上搜索了play pause video in recylcerview android,我希望下次你能和我做同样的事情。

注意:一切都不可能写在评论中,所以我写了一个答案。

谢谢。

【讨论】:

以上是关于当 onBindViewHolder 调用播放视频时,如果没有在 recyclerview 中停止视频的主要内容,如果未能解决你的问题,请参考以下文章

RecyclerView.onBindViewHolder 只调用一次

未调用 RecyclerVIew onCreateViewHolder 和 onBindViewHolder

Android开发之视频播放调用setVideoPath()方法

如何在回收站视图的 onBindViewHolder() 方法中调用 getString()?

在 RecyclerView 适配器 notifyDataSetChanged() 之后未调用 onBindViewHolder

RecyclerView 一次为所有项目调用 onCreateViewHolder 和 onBindViewHolder