一、背景
笔者刚毕业小白,目前正在参与开发一款手机app,会有视频展示,ios和android开发人员说如果直接获取视频会对手机性能产生影响,卡顿什么得巴拉巴拉巴拉,需要我给他们截个图,第一帧,就这样T_T。
视频我都是通过接口使用 腾讯对象存储服务(cos) 然后获取URL的。
二、过程
首先当然各种查,网上清一色都是本地视频截取第一帧,工具无一例外都是ffmpeg,虽然需求不同,总得尝试一下。
自己拍了个视频放到本地,然后照着博客得代码尝试了一下,原博客链接。
代码我自己做了改动后发现ok,那么问题来了,视频URL该怎么办呢?
我这么做的:
try {
URL url = new URL(videoUrl);
BufferedInputStream bis = new BufferedInputStream(url.openStream());
//实例存储字节数组
byte[] bytes = new byte[100];
OutputStream bos = new FileOutputStream(new File(缓存视频的本地路径));
int len;
while ((len = bis.read(bytes)) > 0) {
bos.write(bytes, 0, len);
}
bis.close();
bos.flush();
bos.close();
boolea = true;
} catch (Exception e) {
boolea = false;
e.printStackTrace();
}
然后就去缓存了路径下看,视频已经取下来了,只要URL没问题,视频取下来应该是没问题的。
视频取下来了,接下来的活就很简单了。
此外我还推荐大家阅读另一篇博客,其中有一个开源项目,代码写得很好。链接...,全部代码我就不贴了,读了这两篇博客加我这一小段代码相信大家都能get!