Если вы создаете миниатюры напрямую, как показано ниже
Bitmap thumb = ThumbnailUtils.createVideoThumbnail(path,
MediaStore.Images.Thumbnails.MINI_KIND);
Тогда есть проблема с этим методом, если вы создаете миниатюры для большого набора видео (для большого количества видео). приложение будет зависать до тех пор, пока все эскизы не будут загружены, потому что весь процесс выполняется в главном потоке.
Использование SuziLoader
Этот загрузчик загрузит миниатюры для видео, которые локально хранятся в вашей файловой системе в фоновом режиме.
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/video.mp4";
ImageView mThumbnail = (ImageView) findViewById(R.id.thumbnail);
SuziLoader loader = new SuziLoader(); //Create it for once
loader.with(MainActivity.this) //Context
.load(path) //Video path
.into(mThumbnail) // imageview to load the thumbnail
.type("mini") // mini or micro
.show(); // to show the thumbnail
Чтобы получить эту зависимость, выполните следующие шаги
Шаг 1. Добавьте репозиторий JitPack в свой файл сборки
Добавьте его в свой корневой build.gradle в конце репозитория:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Шаг 2. Добавить зависимость
dependencies {
compile 'com.github.sushinpv:SuziVideoThumbnailLoader:0.1.0'
}
ДОБАВИТЬ ЧИТАТЬ ВНЕШНЕЕ ХРАНЕНИЕ Разрешение в манифесте
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>