我正在尝试制作一个带有颤振的音乐播放器。使用 flutter_audio_query 包从存储和 audioplayers 包中获取歌曲。问题是,当我运行程序时,它在我的 ListView 中什么也没有显示,没有得到歌曲。甚至没有显示文本('未找到歌曲')。我在 Android 清单中添加了所需的权限。这似乎是flutter_audio_query的问题。这是我的 main.dart 文件:
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'));
}
);
}
有任何想法吗 ?