Android在嵌套的RecyclerView中实现自动播放视频,就像Instagram自动播放视频一样



我想在我的应用程序中实现一种Instagram类型的自动播放视频播放器功能,同样,我尝试了一些库,也尝试了一些方法来设置回调,将生命周期相关的回调从片段传递到垂直回收视图到垂直回收视图。

我浏览了以下库:

  • arthur3486/ARVI:这个库看起来更有前途,它使用了ExoPlayer(即Google为Android开发的媒体播放器),这个库提供了更多的定制和更多的内存管理功能。它提供了媒体播放器对象的发布,还提供了自动播放模式。

  • MostafaAnter/VideoPlayerInsideRecyclerView:这个库也使用ExoPlayer作为媒体播放器,但使用硬件加速来使用纹理视图进行视频播放器UI设计。这也是由单个开发人员管理的,但最近更新了。

  • 谷歌/ExoPlayer:这是谷歌开发的安卓媒体播放器。这是一个香草的媒体播放器库,我们可以直接使用,但我们需要实现所有的管理何时和哪个帖子媒体应该应用程序播放,以及如何应用程序应该释放这些媒体。

  • mobileappsvn/AutoPlayVideoRecyclerView:这个库代码完全是用Java编写的,它是2-4年前的最后一次更新。根据他们的自述,这个库的目标是这些特性的一些精确点。但是,这个库仍然没有提供任何与两个级别的RecyclerView视频播放器管理相关的信息。因此,我们必须试一试,以确保它应该工作或不。

  • klinker24/Android-SimpleVideoView:这也是一个很好的库,更新了2年。到目前为止,它完全是用Java开发的,并且由一个开发人员管理。但是,我们同样需要使用这个库进行2级管理测试。我还找到了一些相关的要点例子,所以我可以试一试,确保它能满足我们的要求。

我发现arthur3486/ARVI似乎很有前途,我整合了它,并试图按照提供的指导方针设置所有的东西,但它不工作,并得到无法解决的错误。

这是一个很酷的库来处理生命周期事件作为委托字段,有一点想象力,你可以避免我的下一个例子中的所有模板https://github.com/Link184/Lifecycle-Delegates

或者,感谢google搜索组件,我们可以这样做:

class MyAdapter(): ... {

class ViewHolder(): ..., LifecycleObserver {
init { 
itemView.findViewTreeLifecycleOwner()?.lifecycle?.addObserver(this)
}
@OnLifecycleEvent(ON_PAUSE)
fun pause() { player.pause() }
@OnLifecycleEvent(ON_RESUME)
fun resume() { player.resume() }
@OnLifecycleEvent(ON_DESTROY)
fun destroy() { player.release() }
}
}

最新更新