问题描述
从我的数组列表中尝试仅在显示名称时没有显示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 (将#修改为@)