我正在开发一个应用程序来播放古兰经的每一节。有6348个音频文件,它们都是由其他人托管的,它们的网址是一种特定的格式(例如www.url.com/{001-001})。
现在,对于很多经文,当我尝试获取mp3文件的持续时间时,它返回错误的持续时间。这个文件就是一个例子:https://www.dropbox.com/s/lssoh5abug9xezz/002-003-AR.mp3?dl=0。当文件大约有9秒长时,它一直给我6189的持续时间。
这个问题适用于一些文件,而其他文件似乎没有问题。我怎样才能解决这个问题?下载所有6348文件并对其进行更改并不是一个选项,因为纯粹的数量。
我尝试了使用mediaPlayer.getDuration()和下面的方法,但是结果是相同的:
MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();
metaRetriever.setDataSource("https://www.alislam.org/quran/search2/mp3-3/002-003-AR.mp3", new HashMap<String, String>());
try {
URL url1=new URL("https://www.alislam.org/quran/search2/mp3-3/002-003-AR.mp3");
AudioFileFormat fileFormat = AudioSystem.getAudioFileFormat(url1.);
} catch (MalformedURLException e) {
e.printStackTrace();
}
for (int i=0; i < 40; i++){
String m = metaRetriever.extractMetadata(i);
System.out.println("********************** " + m);
}seekBar.setMax(duration);,还有其他方法来达到这个目的吗?发布于 2021-05-18 21:37:14
很可能您的总持续时间是毫秒。您需要将其转换为秒和分钟,如下所示:
int seconds = totalDuration / 1000;
int mm = seconds % 3600 / 60;
int ss = seconds % 60;然后使用字符串格式化这些值:
String str = String.format ( "%02d:%02d" , mm , ss );注意,totalDuration值在这里很重要。最后的字符串也是必需的。
发布于 2021-05-20 19:39:27
当我在一个"h**ps://www.alislam.org/quran/search2/mp3-3/002-003-AR.mp3“编辑器中打开文件mp3时,它的持续时间是6秒。
https://stackoverflow.com/questions/67593951
复制相似问题