如何在 Flutter 中从内部和外部存储中获取所有 mp3 文件?

Posted

技术标签:

【中文标题】如何在 Flutter 中从内部和外部存储中获取所有 mp3 文件?【英文标题】:How to get all mp3 files from internal as well as external storage in Flutter? 【发布时间】:2019-11-22 01:25:30 【问题描述】:

我想用颤振项目在列表视图中显示所有歌曲,但我不知道如何访问我的内部文件夹。

首先 我刚刚创建了一个名为“Shruti”的文件夹,但它是在 /storage/emulated/0/android/data/com.example.musicplayer/files 中创建的,但我只想在 /storage/emulated/0/ 中创建该文件夹路径。

因为我不知道如何读写内部和外部存储。

final directory = await getApplicationDocumentsDirectory();
     print('Directory= $directory');
     // External storage directory: /storage/emulated/0
     Directory externalDirectory = await getExternalStorageDirectory();

     print('External Storage:$externalDirectory ');


     new Directory(externalDirectory.path+'/'+'Shruti').create(recursive: true)
     .then((Directory directory) 
       print('Path of New Dir: '+directory.path);
     );

【问题讨论】:

请显示一些代码,到目前为止你已经尝试过什么。 与此类似:***.com/questions/49399958/… 但将 pdf 替换为 mp3。 完成,你可以检查我的代码。 【参考方案1】:

此代码可用于读取存储。您必须指定路径。

Directory dir = Directory('/storage/emulated/0/');
String mp3Path = dir.toString();
print(mp3Path);
List<FileSystemEntity> _files;
List<FileSystemEntity> _songs = [];
_files = dir.listSync(recursive: true, followLinks: false);
for(FileSystemEntity entity in _files) 
  String path = entity.path;
  if(path.endsWith('.mp3'))
    _songs.add(entity);

print(_songs);
print(_songs.length);

附: :- 不要忘记权限。

您还可以查看此软件包的其他功能。 https://pub.dev/packages/flutter_audio_query

【讨论】:

嘿,我可以根据日期安排这个吗,比如最新发布的【参考方案2】:

您可以使用flute_music_player 包获取歌曲。

【讨论】:

以上是关于如何在 Flutter 中从内部和外部存储中获取所有 mp3 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flutter 中从 Firebase Auth 获取用户 ID?

如何在特定查看器中从内部存储打开文件? [复制]

如何在 Flutter 中从 firebase 存储读取和写入文本文件?

如何在快速路由器获取请求中从节点获取中使用获取

如何在 Flutter 中从 SQLite 获取数据?

如何在flutter中从云Firestore中获取数据?