计算视频时长需要太多时间

问题描述

从我的数组列表中尝试仅在显示名称时没有显示name,and duration中的视频文件Recycler view,但是没有延迟,但是当我尝试显示name,duration时会花费一些时间。 / p>

延迟只有15到20个文件。

那我如何更快地计算视频文件的持续时间。

这是我的工作。

String folderName = bundle.getString("folderName");
        setTitle(folderName);

        for (int i = 0; i < Constant.allMediaList.size(); i++) {
            if (folderName.equals(new File(String.valueOf(Constant.allMediaList.get(i))).getParentFile().getName())) {
                String fileName = FilenameUtils.getBaseName(Constant.allMediaList.get(i).getAbsolutePath());
                String duration = getDuration(Constant.allMediaList.get(i).getAbsolutePath(),context);
                String path = Constant.allMediaList.get(i).getAbsolutePath();
                videosPath.add(new VideoModel(fileName,duration,path));
            }
        }


public static String getDuration(String absolutePathThumb,Context context) {
    try{
        FFmpegMediaMetadataRetriever retriever = new FFmpegMediaMetadataRetriever();
        retriever.setDataSource(context,Uri.parse(absolutePathThumb));
        String time = retriever.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_DURATION);
        long timeInMillisec = Long.parseLong(time);
        return convertMillieToHMmSs(timeInMillisec);
    }catch(Exception e){
        e.printStackTrace();
        return null;
    }
}

以上是试图获取文件持续时间和名称的原因。我在做什么错了?

而我的ArrayList只是文件路径,没有任何索引。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)