Android 在RecyclerView中使用SurfaceView

Android 在RecyclerView中使用SurfaceView,android,scroll,video-streaming,android-mediaplayer,surfaceview,Android,Scroll,Video Streaming,Android Mediaplayer,Surfaceview,我正在使用一个列表来显示可供选择的视频,列表的标题有一个SurfaceView,我在其中使用setDisplay()连接MediaPlayer,以显示剪辑。 问题是,当我向下滚动时。SurfaceHolder被销毁,我想这是为了节省资源。一旦我再次向上滚动,就会调用surfaceCreated方法,在该方法中我再次使用setDisplay()。它可以再次播放视频,但由于它向后跳了一秒钟左右,所以听起来有些滞后 如何解决此问题?如本链接所述: 在Android N之前,SurfaceView渲染未

我正在使用一个列表来显示可供选择的视频,列表的标题有一个
SurfaceView
,我在其中使用
setDisplay()
连接
MediaPlayer
,以显示剪辑。 问题是,当我向下滚动时。
SurfaceHolder
被销毁,我想这是为了节省资源。一旦我再次向上滚动,就会调用
surfaceCreated
方法,在该方法中我再次使用
setDisplay()
。它可以再次播放视频,但由于它向后跳了一秒钟左右,所以听起来有些滞后


如何解决此问题?

如本链接所述:

在Android N之前,SurfaceView渲染未与视图动画正确同步。在早期版本中,如果将SurfaceView放置到滚动容器中,或者当它受到动画影响时,这可能会导致不必要的效果。这样的效果包括SurfaceView的内容看起来稍微落后于它应该显示的位置,以及视图在受到动画影响时变黑

为了在Android N之前实现平滑的动画或视频滚动,因此有必要使用TextureView而不是SurfaceView。如果不需要平滑动画或滚动,则应首选SurfaceView(请参见?)


纹理视图应该工作得更好一些。但请记住,TextureView将消耗更多的手机资源(尤其是内存)。根据Androids文档,TextureView实例的使用量比YouTube应用程序中使用的SurfaceView多约4MB?尝试使用TextureView,现在当我滚动视频时它不会延迟,但当我滚动回视频时它会延迟