短视频平台搭建,指定视频中的某一帧做为视频的封面
短视频平台搭建,指定视频中的某一帧做为视频的封面实现的相关代码
Glide4.x
Glide4.x提供了frame(@IntRange(from = 0) long frameTimeMicros)方法,可以从提取视频的第N帧作为图片加载。
缺点:如果是网络视频链接,第一次加载会非常慢。
1 | <br>val options = RequestOptions()<br> .diskCacheStrategy(DiskCacheStrategy.ALL)<br> //获得第1帧图片 这里的第一个参数 以微秒为单位<br> .frame(1 * 1000 * 1000)<br> .placeholder(R.drawable.pic_zwt)<br> .centerCrop()<br> Glide.with(this)<br> .setDefaultRequestOptions(options)<br> .load("http://7xjmzj.com1.z0.glb.clouddn.com/20171026175005_JObCxCE2.mp4")<br> .into(image1) |
MediaMetadataRetriever
MediaMetadataRetriever类提供了一个统一的接口,用于从输入媒体文件中检索帧和元数据。
1 | <br>val retriever = MediaMetadataRetriever()<br>val url = "http://7xjmzj.com1.z0.glb.clouddn.com/20171026175005_JObCxCE2.mp4" <br> if (url.startsWith( "http" )) {<br> //setDataSource(String uri, Map<String, String> headers) 是获取视频链接<br> retriever.setDataSource(url, emptyMap())<br>} else {<br> //setDataSource(String path)是获取视频文件<br> retriever.setDataSource(url)<br>} <br>//获得第10帧图片 这里的第一个参数 以微秒为单位<br>val bitmap = retriever.getFrameAtTime(10 * 1000 * 1000, MediaMetadataRetriever.OPTION_CLOSEST_SYNC)<br>retriever.release()<br>image2.setImageBitmap(bitmap) |
以上就是 短视频平台搭建,指定视频中的某一帧做为视频的封面实现的相关代码,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现