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

时间:2014-01-21 07:18:58

标签: android listview media-player surfaceview

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

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

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

  3. 这很好用。但问题是

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

    当前解决方案

    我尝试在这两种方法之间应用postdelay,但它工作正常。我想知道这是否是这样做的有效方法。或者还有其他方法可以让我更快地做出反应。

1 个答案:

答案 0 :(得分:0)

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

希望有帮助。