I'm trying to make a music player with flutter. Using flutter_audio_query package to get the songs from the storage and also audioplayers package. The thing is that when I run the program it shows nothing in my ListView, not getting the songs. Not even showing the Text('No songs found'). I have added the required permissions in Android manifest. It seems like a problem with flutter_audio_query. Here is my main.dart file:
import 'package:flutter/material.dart';
import 'package:flutter_audio_query/flutter_audio_query.dart';
import 'package:music_player/Routes/playing_song.dart';
void main() => runApp(MaterialApp(
title: 'Music Player',
home: Home(),
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.deepPurple,
brightness: Brightness.dark,
),
));
class Home extends StatefulWidget {
@override
State createState() => _Home();
}
class _Home extends State<Home> {
List<dynamic> _songs = [];
var songs;
int position = 0;
late FlutterAudioQuery audioQuery;
Future<List<dynamic>> getAllSongs() async => await audioQuery.getSongs();
@override
void initState() {
super.initState();
audioQuery = FlutterAudioQuery();
songs = getAllSongs();
setState(() {});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: _build(),
bottomNavigationBar: Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: <IconButton>[
IconButton(
autofocus: true,
icon: Icon(Icons.home_filled),
tooltip: 'Home',
onPressed: () {},
),
IconButton(
icon: Icon(Icons.queue_music_sharp),
tooltip: 'Albums/Artists',
onPressed: () {},
),
IconButton(
icon: Icon(Icons.settings),
tooltip: 'Settings',
onPressed: () {},
),
],
),
);
}
Widget? _build() {
FutureBuilder<List<dynamic>> (
future: songs,
builder: (context, snapshot) {
if (snapshot.hasData) {
setState(() => _songs = snapshot.data!);
return ListView.builder(
itemCount: this._songs.length,
itemBuilder: (BuildContext context, int index) {
position = index++;
return Card(child: ListTile(
leading: CircleAvatar(
child: Text('$position'),
foregroundColor: Colors.black,
backgroundColor: Colors.deepPurple,
),
title: Text(_songs[index].title),
subtitle: Text(_songs[index].artist),
onTap: () => Navigator.push(context,
MaterialPageRoute(builder: (BuildContext context) =>
Playing_Song(_songs[index]))),
));
}
);
} else return Center(child: const Text('No Songs Found'));
}
);
}
Any ideas ?