【问题标题】:Using surfaceview in list view for playing videos在列表视图中使用surfaceview播放视频
【发布时间】:2014-02-10 15:55:11
【问题描述】:

我有一个列表视图。列表视图中的每个列表项都包含一个表面视图、一个图像视图和按钮。最初,surfaceview 的可见性将消失。只有图像视图和按钮可见。

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

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

这很好用。但问题是

释放已经存在的媒体播放器和初始化新的媒体播放器需要时间(主要在方法 mediaplayer.prepareasyn() 和 mediaplayer.start() 之间)。 如果轻按列表项并慢慢移开我的手,它工作正常...否则如果轻按速度非常快,它不会播放视频,只有表面视图可见。

目前的解决方案

我尝试在这两种方法之间应用后延迟,效果很好。我想知道这是否是这样做的有效方法。或者有没有其他方法可以让我更快地做出反应。

【问题讨论】:

  • 能否分享一下如何在listview中播放视频的示例代码或示例项目?
  • @keybee 如果您的应用是 4.1 及以上版本,您可以毫无问题地纹理视图
  • 嘿@PreethiRao 你解决了吗?你能分享一些相同的代码吗?
  • @PreethiRao 我需要与此主题相关的帮助。?
  • @AtifAbbAsi 是的

标签: android listview media-player surfaceview


【解决方案1】:

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

希望那是帮助。

【讨论】:

  • 这就是我目前所做的......我想知道是否有任何其他有效的方法可以在不使用延迟方法的情况下做到这一点。
  • 你可以尝试在后台准备其他视频,甚至在用户点击它之前。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 2016-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多