SagarRawat Ответов: 1

Я хочу получить все mp3-файлы с устройства хранения android в моем аудиоплеере appi in flutter и показать их в listview.builder


поэтому я создаю приложение для музыкального плеера в flutter и хочу показать список всех песен, извлеченных из внутренней памяти устройства, но не могу найти правильный код. Спасибо.


import 'package:flutter/material.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:path_provider/path_provider.dart';

class Songlist extends StatefulWidget {
@override
_SonglistState createState() => _SonglistState();
}

class _SonglistState extends State<Songlist> {
@override
void initState() {
super.initState();
initlist();
}

void initlist() async {
if (await Permission.storage.request().isGranted) {
  Directory dir = await getExternalStorageDirectory();
  List<FileSystemEntity> files;
  files = dir.listSync(recursive: true, followLinks: false);
}
}

@override
Widget build(BuildContext context) {
return Scaffold(
  appBar: AppBar(
    title: Text("Your Media"),
    backgroundColor: mycolor,
  ),
  /* body: new ListView.builder(
      padding: const EdgeInsets.all(16.0),
      itemCount: files.length,
      itemBuilder: (context, i) {
        return buildRow(_files.elementAt(i).path);
      }), */
  );
}
}


Что я уже пробовал:

Я пытался использовать flute_player_plugin но это не работает у него есть некоторые проблемы

1 Ответов

Рейтинг:
1

Gerry Schmitz

Вы добавляете свои файлы в "локальную переменную", а затем позволяете ей "исчезнуть" (выйти из области видимости).

Вам нужно добавить "файлы" (имена) в свой ListView.

List<FileSystemEntity> files;
files = dir.listSync(recursive: true, followLinks: false);


SagarRawat

как мне использовать имя файла в listview, можете ли вы сказать мне , если это нормально

David Crow

Добавьте элементы в адаптер. Свяжите адаптер с ListView.