1 Star 0 Fork 10

搬砖现场 / Mrthumb

forked from Reone / Mrthumb 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

拇指先生 Mrthumb

预览图

img

库说明

  • a simple easy video thumbnail provider
  • 顺滑的获取视频缩略图
  • 支持网络视频缩略图
  • 使用方便

源码下载,分支说明

请下载对应版本号的分支下载源码浏览,master分支为代码最新状态,却不一定是生成库的源代码,而且有可能是有问题的代码。而生成库后的源码,我会新建一个对应版本号的分支,以保存库源码初始状态。一供查错,二供浏览。

原理说明

  • 使用MediaMetadataRetriever获取视频信息及缩略图
  • 使用MediaMetadataRetrieverCompat支持FFmpeg和自带两种解码方式
  • 使用线程异步加载缩略图并缓存
  • 支持两种不同的加载顺序选择:顺序、乱序
  • 获取不到缩略图时取最近的缩略图

引用说明

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
dependencies {
    implementation 'com.github.Reone:Mrthumb:v1.0.2'
}

使用说明

1.加载缩略图

if (playState == NiceVideoPlayer.STATE_PREPARED) {
    //视频准备好后开始加载缩略图
    Mrthumb.obtain().buffer(videoUrl, videoDuration, Mrthumb.Default.COUNT);
    //更详细的可以调用如下方法
    //Mrthumb.obtain().buffer(videoUrl, null, videoDuration, Mrthumb.Default.RETRIEVER_TYPE, Mrthumb.Default.COUNT, Mrthumb.Default.THUMBNAIL_WIDTH, Mrthumb.Default.THUMBNAIL_HEIGHT);
}

2.获取缩略图

float percentage = (float) seekBar.getProgress() / seekBar.getMax();
Bitmap bitmap = Mrthumb.obtain().getThumbnail(percentage);

3.添加缓存进度回调

Mrthumb.obtain().addProcessListener(new ProcessListener() {

    @Override
    public void onProcess(final int index, final int cacheCount, final int maxCount, final long time, final long duration) {
        if (delegate != null) {
            delegate.thumbProcessLog("cache " + time / 1000 + "s at " + index + " process:" + (cacheCount * 100 / maxCount) + "%");
        }
    }
});

4.回收资源

Mrthumb.obtain().release();

空文件

简介

【拇指先生】 a simple easy video thumbnail provider,顺滑的获取视频缩略图,支持本地和网络视频,有问题大胆提Issues 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Android
1
https://gitee.com/zhaowx_admin/Mrthumb.git
git@gitee.com:zhaowx_admin/Mrthumb.git
zhaowx_admin
Mrthumb
Mrthumb
master

搜索帮助