Android获取(网络和本地)视频缩略图
发布日期:2021-05-20 13:15:46 浏览次数:7 分类:技术文章

本文共 1604 字,大约阅读时间需要 5 分钟。

 

在音视频APP开发过程中,有一个比较重要的功能就是显示视频封面图片(如果不能显示视频封面用户体验是比较差的),常用的方法有2中:

  1. 提前准备好视频的封面图片,然后显示时去加载这张图片
  2. 从视频中动态解析出视频封面图片

第一种方式对于APP端而言没什么难度,拿到图片地址直接加载显示图片就行。第二种方式就比较难了,因为处理视频获取图片还是比较复杂的。不过今天要给大家讲的方式比较简单,因为已经有第三方库帮我们做好:

我们先来看一下效果:(分别获取网络、本地、逐帧图片、列表图片)

网络视频图片获取
本地视频图片获取
逐帧获取图片
视频直播列表图片获取

现在开始实现以上功能

1、gradle中集成库(当然权限这种自己要开启)

implementation 'ywl.ywl5320:wlmedia:version'

2、使用到的API(只有几行、几行、行……)

WlMediaUtil wlMediaUtil = new WlMediaUtil();//创建实例wlMediaUtil.setSource("http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8");//设置数据源wlMediaUtil.init();//初始化 返回0表示成功wlMediaUtil.openCodec();//打开视频图片解码器 返回0表示成功/**    开始获取图片    time:表示获取指定时间的图片    false:表示获取当前第一帧图片 true:表示获取当前第一帧关键帧图片    返回值:不为空即获取到图片*/ wlMediaUtil.getVideoImg(time, false);wlMediaUtil.release();//最后回收资源

以上就是用到的所有API,是不是比较简单,几句代码就完事~

3、调用方式(需要在子线程中调用,因为获取视频图片是耗时操作!!)

new Thread(new Runnable() {    @Override    public void run() {        WlMediaUtil wlMediaUtil = new WlMediaUtil();        wlMediaUtil.setSource("http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8");        int ret = wlMediaUtil.init();        if(ret == 0)        {            ret = wlMediaUtil.openCodec();            if(ret == 0)            {                WlVideoImgBean wlVideoImgBean = wlMediaUtil.getVideoImg(false);                if(wlVideoImgBean != null)                {                    Message message = Message.obtain();                    message.obj = wlVideoImgBean;                    message.what = 0;                    handler.sendMessage(message);                }            }        }        wlMediaUtil.release();    }}).start();

这样就实现了视频图片的获取。

Demo下载地址:

最后总结一下:功能越复杂,使用越简单的SDk才是真的好,哈哈~

 

 

转载地址:https://blog.csdn.net/ywl5320/article/details/107576410 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android播放透明视频
下一篇:Android音视频播放库:wlmedia

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月11日 13时23分48秒