我有一个listview.list视图中的每个listitem都包含一个surfaceview,一个imageview和一个按钮。最初,surfaceview的可见性将消失。只有imageview和按钮可见。
一旦用户点击了图片视图或按钮,表面视图就可以看到媒体播放器已初始化,它将开始在surfaceview上播放视频。 当用户向上和向下滚动时,表面视图的可见性再次变化(消失)。一次只能看到一个表面视图。
当用户触摸任何列表项时,它会检查是否已存在任何其他媒体播放器(如果存在),它将被释放,并使用新的surfaceview实例初始化新的媒体播放器。
这很好用。但问题是
发布现有的媒体播放器并初始化新的媒体播放器需要时间(主要介于mediaplayer.prepareasyn()和mediaplayer.start()之间)。 如果点击listitem并慢慢地移开我的手它工作正常...否则如果它被快速点击它不播放视频只有surfaceview可见。
当前解决方案
我尝试在这两种方法之间应用postdelay,但它工作正常。我想知道这是否是这样做的有效方法。或者还有其他方法可以让我更快地做出反应。