Как быстро получить длительность видеофайла в Android при загрузке сотен видео в RecyclerView Android? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть Recyclerview для отображения видео в локальном хранилище. Я также хочу отобразить продолжительность видео внутри держателя просмотра. Поэтому я использовал MediaMetaDataRetriever, чтобы получить продолжительность. Но проблема в том, что когда я пытаюсь загрузить сотни видео, рендеринг просмотра занимает больше времени. Кто-нибудь может дать решение? Это код внутри onBindViewHolder:

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(context, Uri.fromFile(new File(filepath)));
String time = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
long timeInMillisec = Long.parseLong(time);
String dur = String.format("%02d:%02d",TimeUnit.MILLISECONDS.toMinutes(timeInMillisec),
                                TimeUnit.MILLISECONDS.toSeconds(timeInMillisec) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(timeInMillisec)));
retriever.release();
viewHolder.gallery_video_text.setText(dur);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...