У меня есть список видео, извлеченных из базы данных с помощью RxJava. Я хочу отображать эти видео в RecyclerViews и генерировать эскиз на этом пути. Проблема заключается в том, что генерация миниатюрRxJava для испускания элементов один за другим
Bitmap thumb = ThumbnailUtils.createVideoThumbnail(localVideo.getFilename(),
MediaStore.Images.Thumbnails.MINI_KIND);
слишком медленно, так что, когда у меня есть много видео на моем списке он блокирует загрузку экрана.
Что я хотел бы знать, так это то, что мой список видео извлекается таким образом, что каждый элемент испускается один за другим, а не как список в целом, и подает каждый элемент, как это делается обработкой (генерирование миниатюры), чтобы пользовательский интерфейс (возможно, этот подход не является даже правильным).
Это моя загрузка видео Код:
public void loadVideoList() {
Subscriber<List<LocalVideo>> subscriber = new Subscriber<List<LocalVideo>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
if (isViewAttached()) {
Timber.e("Error retrieving local videos", e);
getView().showError();
}
}
@Override
public void onNext(List<LocalVideo> videoList) {
if (isViewAttached()) {
getView().showVideoList(videoList);
if(videoList.isEmpty()) {
getView().showNoVideos();
}
}
}
};
mStoredVideoRepository
.getLocalVideos()
.subscribeOn(mScheduleProvider.computation())
.observeOn(mScheduleProvider.ui())
.subscribe(subscriber);
addToSubscriptions(subscriber);
}
Если я делаю это так, загрузив все эскизы, прежде чем вернуться тои интерфейс все элементы, тогда мне все еще нужно подождать, пока миниатюры не будут сгенерированы, чтобы что-то увидеть на моем экране. –
Пробовали ли вы пример? Он будет печатать каждый номер на другой строке, т. Е. Этот шаблон даст вам отдельные значки в конце, а не их список. – akarnokd