在列表视图中使用surfaceview播放视频

Pre*_*Rao 5 android listview surfaceview media-player

我有一个listview.list视图中的每个listitem包含一个surfaceview,一个imageview和按钮.最初,surfaceview的可见性将消失.只有imageview和按钮可见.

  1. 一旦用户点击图像视图或按钮,表面视图就可以看到媒体播放器被初始化,它将开始在表面视图上播放视频.当用户向上和向下滚动时,表面视图的可见性再次变化(消失).一次只能看到一个表面视图.

  2. 当用户触摸任何列表项时,它会检查是否已存在任何其他媒体播放器(如果存在),它将被释放,并且新的媒体播放器将使用新的surfaceview实例进行初始化.

这很好用.但问题是

释放现有的媒体播放器并初始化新的媒体播放器需要时间(主要在方法mediaplayer.prepareasyn()和mediaplayer.start()之间).如果点击listitem并慢慢移开我的手它工作正常...否则,如果它被非常快地点击它不播放视频只有surfaceview可见.

现行解决方案

我尝试在这两种方法之间应用postdelay它工作正常.我想知道这是否是这样做的有效方法.或者有没有其他方法可以实现更快的反应.

小智 0

我认为你应该做的是使用Handler并使用postDelayed方法来延迟操作,同时使用 ProgressDialog 向用户显示你正在加载下一个视频。

希望这就是帮助。