Android 获取网络视频第一帧的图片
2017-12-28 13:48
423 查看
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) private Bitmap createVideoThumbnail(String url, int width, int height) { Bitmap bitmap = null; MediaMetadataRetriever retriever = new MediaMetadataRetriever(); int kind = MediaStore.Video.Thumbnails.MINI_KIND; try { if (Build.VERSION.SDK_INT >= 14) { retriever.setDataSource(url, new HashMap<String, String>()); } else { retriever.setDataSource(url); } bitmap = retriever.getFrameAtTime(); } catch (IllegalArgumentException ex) { // Assume this is a corrupt video file } catch (RuntimeException ex) { // Assume this is a corrupt video file. } finally { try { retriever.release(); } catch (RuntimeException ex) { // Ignore failures while cleaning up. } } if (kind == MediaStore.Images.Thumbnails.MICRO_KIND && bitmap != null) { bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height, ThumbnailUtils.OPTIONS_RECYCLE_INPUT); } return bitmap; }
这个方法还是有效的,但是我在使用的过程中发现了一个‘’适配‘’的问题,我在Vivo的手机上使用这个方法,获取不到第一帧的图片。大部分手机都可以。最后解决的办法就是改接口 - -。。
具体的思路就是在本地录制视频的时候,将本地视频的第一帧图片同时上传到服务器。在显示图片的时候,如果有这个方法返回的bitmap不为null,则用这个图片,如果为null的话,就用上传的那张图片。 是不是很无奈。。。
如果各位有遇到相同的问题,还望留言指点一番。
相关文章推荐
- android获取图片原始长宽,获取视频第一帧的缩略图
- 获取本地视频,网络视频的第一帧图片,使之显示出来
- 在Android中如何获取视频的第一帧图片并显示在一个ImageView中
- 在Android中如何获取视频的第一帧图片并显示在一个ImageView中
- 4000 获取本地视频,网络视频的第一帧图片,并显示出来
- 如何获取网络视频(或者说后台返回视频URL)第一帧图片以及获取本地视频的第一帧图片
- Android 异步获取网络图片并处理导致内存溢出问题解决方法
- Android 获取SDCard上图片和视频的缩略图
- Android LazyList 从网络获取图片并缓存
- android 获取网络图片并在Imageview上显示
- Android 网络图片获取与网络内容获取。
- 封装的工具类(网络获取Json,图片,下载图片,下载Mp3,下载视频)
- Android 如何根据网络地址获取网络图片方法
- android网络上获取图片作为ImageButton和ImageView的背景
- 根据URL获取视频第一帧图片 - Swift
- Android之使用MediaMetadataRetriever类获取视频第一帧及用法
- 获取视频的第一帧图片!
- android viewpager 动态从网络获取图片
- Android图片的三级缓存机制之从网络中获取图片
- android工具类----(从网络获取图片以及异步加载图片)