From 555070a7e78bca9ba23cd4de4f4cb314db44d069 Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Sun, 22 Jan 2017 20:40:11 +0100 Subject: [PATCH] Pass filedescriptor to mediametadataretriever instead of a path. This avoids issues where it would parse paths as uri's - we already do this for the MediaPlayer, so doing the same here seems to be sane. --- .../android/medialibrary/MediaMetadataExtractor.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ch/blinkenlights/android/medialibrary/MediaMetadataExtractor.java b/src/ch/blinkenlights/android/medialibrary/MediaMetadataExtractor.java index 9a61d05a..78d51da6 100644 --- a/src/ch/blinkenlights/android/medialibrary/MediaMetadataExtractor.java +++ b/src/ch/blinkenlights/android/medialibrary/MediaMetadataExtractor.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.io.FileInputStream; public class MediaMetadataExtractor extends HashMap> { // Well known tags @@ -251,7 +252,9 @@ public class MediaMetadataExtractor extends HashMap> { HashMap bastpTags = (new Bastp()).getTags(path); MediaMetadataRetriever mediaTags = new MediaMetadataRetriever(); try { - mediaTags.setDataSource(path); + FileInputStream fis = new FileInputStream(path); + mediaTags.setDataSource(fis.getFD()); + fis.close(); } catch (Exception e) { /* we will later just check the contents of mediaTags */ } // Check if this is an useable audio file