在listview中播放视频(使用videoView)的可能替代方案

时间:2014-02-04 12:20:00

标签: android listview android-listview android-videoview

我正在努力制作类似于Google+列表视图中的视频内容(我猜它的视频)。 在Google+中滚动列表如果在可见区域中有视频,即使我正在滚动直到它离开屏幕,它也会自动开始播放。

现在我知道当列表视图滚动时视频无法正常播放。所以我想Google+已经制作了一些播放视频的解决方法。

首先我使用动画Drawable(通过某种方式以某种方式从视频中获取图像)。但如果我想以10-12 fps(分钟)的速度播放6秒的视频,大约是60-72张图像。和动画Drawable一次加载所有图像,因此在这种情况下,它会立即给出内存不足错误。

那么还有其他建议吗?

更新 目前我通过在listview上使用滚动监听器来管理它以某种方式工作。 这是我到目前为止的表现。 我正在检测哪个视图位于中心,如果列表视图根本不滚动(使用滚动侦听器检测到),则该特定视图中的videoView开始播放。如果用户触摸屏幕移动列表视图停止视频播放,则抓取该特定实例的帧并显示在视频视图的顶部,我在抓取帧后隐藏videoView。还使用BaseAdapter的“notifyDataSetChanged”和一些标志来确保列表视图(listview循环查看)这样可以正常工作。

这很有效,但不是一个优雅的解决方案。当用户触摸屏幕并在主线程中调用“getCurrentVideoFrame”时停留片刻,它会闪烁。

更新2:

好吧所以我认为使用ffmpeg可能有不同的方式。 这就是我要做的事情: 使用预定义fps的ffmpeg从视频文件中获取图像。 使用asynctask“发布更新”机制以定义的速率替换imageview中的这些图像。

任何想法?

0 个答案:

没有答案