本文主要是介绍根据视频地址获取视频的第一帧画面做为封面 IllegalArgumentException,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于这一类的文章网上也是很多的,只是在复制黏贴别人代码的时候竟然直接崩溃了……这就很蛋疼了!
public Bitmap getBitmapFormUrl(String url) {MediaMetadataRetriever retriever = new MediaMetadataRetriever();retriever.setDataSource(url);//getFrameAtTime()--->在setDataSource()之后调用此方法。 如果可能,该方法在任何时间位置找到代表性的帧,// 并将其作为位图返回。这对于生成输入数据源的缩略图很有用。Bitmap bitmap = retriever.getFrameAtTime();retriever.release();return bitmap;
}
就这么几行代码还是给我抛了个IllegalArgumentException异常,最后查看文档发现在api14以后又增加了个参数。传了个空的HashMap进去就获取到了第一帧的画面….
最后整理的代码就长下面这个样子了
public static Bitmap getBitmapFormUrl(String url) {Bitmap bitmap = null;MediaMetadataRetriever retriever = new MediaMetadataRetriever();try {if (Build.VERSION.SDK_INT >= 14) {retriever.setDataSource(url, new HashMap<String, String>());} else {retriever.setDataSource(url);}/*getFrameAtTime()--->在setDataSource()之后调用此方法。 如果可能,该方法在任何时间位置找到代表性的帧,并将其作为位图返回。这对于生成输入数据源的缩略图很有用。**/bitmap = retriever.getFrameAtTime();} catch (IllegalArgumentException e) {e.printStackTrace();} finally {try {retriever.release();} catch (IllegalArgumentException e) {e.printStackTrace();}}return bitmap;
}
谨以此篇博客记录这个坑!
这篇关于根据视频地址获取视频的第一帧画面做为封面 IllegalArgumentException的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!