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,现在当我滚动视频时它不会延迟,但当我滚动回视频时它会延迟