Android 获取一张地图,上面显示设备上的所有歌曲及其路径

Android 获取一张地图,上面显示设备上的所有歌曲及其路径,android,flutter,Android,Flutter,好的,这个问题很简单,我如何在包含所有歌曲及其各自路径的地图中获取设备上的所有歌曲(或者如果在整个设备上不可能,至少在一个文件夹中,例如,音乐文件夹中),如下所示: var song= { // Key: Value 'title': 'All Star', 'author': 'Smash Mouth', //Optional but would like to get this too 'album': 'All Star', //Optional but would

好的,这个问题很简单,我如何在包含所有歌曲及其各自路径的地图中获取设备上的所有歌曲(或者如果在整个设备上不可能,至少在一个文件夹中,例如,音乐文件夹中),如下所示:

var song= {
  // Key:    Value
  'title': 'All Star',
  'author': 'Smash Mouth', //Optional but would like to get this too
  'album': 'All Star', //Optional but would like to get this too
  'path': 'storage/emulated/0/Music'

};

我该怎么做呢?

Android有一个mediaplayer类,它可以扫描所有媒体文件,并在启动和插拔sd卡时生成相应的数据库信息。您可以通过以下方式获取有关音乐文件的信息

private List<SingListBean> getAllSing(Context context) {
    int flag = 1;
    List<SingListBean> listBeans = new ArrayList<>();
    Cursor cursor = context.getContentResolver().query
            (MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
    while (cursor.moveToNext()) {
        String singName = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
        String singAlbum = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
        Long _size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));
        int duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
        String url = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
        listBeans.add(new SingListBean(flag++, singName, singAlbum, _size, duration, url));
    }
    return listBeans;
}
private List getAllSing(上下文){
int标志=1;
List listBeans=new ArrayList();
Cursor Cursor=context.getContentResolver().query
(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
while(cursor.moveToNext()){
String singName=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
String singAlbum=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
Long _size=cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.size));
int duration=cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.duration));
字符串url=cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
添加(新的SingListBean(flag++,singName,singAlbum,_size,duration,url));
}
返回listBeans;
}

这没有帮助,问题是如何在颤振中执行。