我为视频缩略图显示创建了listview,我的代码如下
Bitmap bitmap = null;
MediaMetadataRetriever mediaMetadataRetriever = null;
try
{
mediaMetadataRetriever = new MediaMetadataRetriever();
if (Build.VERSION.SDK_INT >= 14)
mediaMetadataRetriever.setDataSource(url+"/videos/" + list.get(position).getSelectedPath(), new HashMap<String, String>());
else
mediaMetadataRetriever.setDataSource(url+"/videos/" + list.get(position).getSelectedPath());
// mediaMetadataRetriever.setDataSource(videoPath);
bitmap = mediaMetadataRetriever.getFrameAtTime(11);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (mediaMetadataRetriever != null) {
mediaMetadataRetriever.release();
}
}
imageView.setImageBitmap(bitmap);
它工作正常,但只需要加载,是否有其他任何方式快速加载。请提示。提前谢谢。
答案 0 :(得分:1)
假设这是一个解决方案,其中视频托管在服务器上并从那里流式传输,客户端(在这种情况下,Android设备)必须在这里做相当多的工作,因为它必须读取和解码每个视频允许它然后检索要显示的缩略图。
无论你如何有效地执行此操作,它总是会涉及处理和延迟。此外,对于受DRM保护或加密的任何视频,它都不会起作用。
许多视频服务的方式是在服务器端生成缩略图,并提供缩略图和视频的链接。
最初只下载缩略图,如果用户点击特定缩略图或其关联的播放按钮,则视频会在该点流式传输。
这样做的缺点是需要更多的服务器端工作,但是减少了工作和向客户端设备传输数据的优势。