MediaMetadataRetriever задушит поведение
Итак, я использую эти простые строки кода:
public static boolean checkIfAudioFileIsValid(String filePath) {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
long duration;
try {
retriever.setDataSource(filePath);
duration = Long.parseLong(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION));
} catch (Exception e ) {
return false;
}
return duration > 1000;
}
Поэтому я проверяю, является ли файл действительным и его длительность превышает одну секунду. По большей части это работает правильно, НО, если файл пуст или его продолжительность меньше 400 мс, я получаю то же значение константы 1520
Есть ли у кого-то эта проблема и нашел способ ее решить?