0
我非常需要从几首不同的用例中检索歌曲和歌曲。我通常可以很容易地从一个mp3 uri(方案:content://
)查询MediaStore,但我有时会收到一个文件路径(方案:file://
)。 我偶然发现了StackOverflow上的这篇文章: Get MediaStore content Uri from File path?从文件路径检索ContentProvider条目
不幸的是,它看起来不适合我。我肯定在某个地方做错了什么,但我不知道在哪里。 这里是我使用的代码,我给它的filePath在执行之前被验证。
下面是一段代码:
private void getTrackFromFilePath(String filePath) {
String[] filePathColumn = {
MediaStore.Audio.Media.TITLE, //
MediaStore.Audio.Media.ARTIST
};
Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Logger.e(TAG, musicUri.toString() + " filePath: " + filePath);
Cursor cursor = getContentResolver().query(musicUri, filePathColumn, MediaStore.Audio.Media.DATA + " LIKE ?", new String[] {
filePath
}, null);
cursor.moveToFirst();
DatabaseUtils.dumpCursor(cursor);
cursor.close();
}
这里是相关的logcat的:我试着玩弄我请求列一点点,但没有成功
01-21 12:14:40.345: E/MusicScannerActivity(13513): content://media/external/audio/media filePath: file:///mnt/sdcard/Music/07%20Olly%20Murs%20Feat%20Flo%20Rida%20-%20Troublemaker.mp3
01-21 12:14:40.350: I/System.out(13513): >>>>> Dumping cursor [email protected]
01-21 12:14:40.350: I/System.out(13513): <<<<<
。