1
首先,我可以获得所有歌曲及其细节。所有我想是让从URL中的歌曲的细节,因为我可以从文件导航唯一的URL,这是我努力如何使用媒体商店从其uri获取歌曲的音乐细节
public ArrayList<Songfileinfo> getPlayList(Context context, String uri) {
{
String sortOrder = null;
try {
String[] proj = {MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.ALBUM_ID
};
String selection = null;
String[] selectionArgs = {uri};
Cursor audioCursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, selection, selectionArgs, sortOrder);
if (audioCursor != null) {
if (audioCursor.moveToFirst()) {
do {
int audioTitle = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE);
int audioartist = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST);
int audioduration = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION);
int audiodata = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
int audioalbum = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM);
int audioalbumid = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID);
int song_id = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID);
Songfileinfo info = new Songfileinfo();
info.setFile_uri(audioCursor.getString(audiodata));
info.setTitle(audioCursor.getString(audioTitle));
info.setDuration((audioCursor.getString(audioduration)));
info.setArtist(audioCursor.getString(audioartist));
info.setAlbum(audioCursor.getString(audioalbum));
info.setId(audioCursor.getLong(song_id));
info.setAlbum_art((ContentUris.withAppendedId(albumArtUri, audioCursor.getLong(audioalbumid))).toString());
songList.add(info);
} while (audioCursor.moveToNext());
}
}
assert audioCursor != null;
audioCursor.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return songList;
}
这是我想使用它不工作我的方法我得到的数组列表大小为0我还试图比较所有位置的列表中的字符串文件的位置,但仍然数组大小为0.我不想使用媒体元数据检索,因为我不会得到专辑封面网址。任何关于如何获得这个特定位置的细节的提示? 我想这样也不过同样的结果,通过比较该文件URI字符串
if (audioCursor.getString(audiodata).equals(uri)){
} 我试图用媒体元数据恢复类,但它只是不会给图像的URL,这将是位图和因为我的整个应用程序使用图片网址,这对我来说很困难。
哪种格式文件中的所有数据? MP3,MP4,FLV。 还是你想创建一个通用的方法? – AndroidStorm
我将uri转换为字符串,所以它会比较所有格式,大多数都是奥迪歌曲 –
我有通过它可以获取所有歌曲的方法。但我想获得我通过文件位置的歌曲的详细信息 –