使用颤振音频查询后没有在我的应用程序中获取歌曲文件
Posted
技术标签:
【中文标题】使用颤振音频查询后没有在我的应用程序中获取歌曲文件【英文标题】:not getting song files in my app after using flutter audioQuery 【发布时间】:2022-01-11 16:50:19 【问题描述】:我已经尝试了所有方法来在我的应用上获取歌曲文件,但它仍然没有显示任何内容,下面是我的代码:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_audio_query/flutter_audio_query.dart';
class slist extends StatefulWidget
@override
_slistState createState() => _slistState();
class _slistState extends State<slist>
final FlutterAudioQuery audioQuery = FlutterAudioQuery();
List<SongInfo> songs = [];
@override
void initState()
super.initState();
getAllSongs();
Future<void> getAllSongs() async
songs = await audioQuery.getSongs();
@override
Widget build(BuildContext context)
return Scaffold(
backgroundColor: Colors.grey[900],
body: ListView.builder(
itemCount: songs.length,
itemBuilder: (context, index)
return ListTile(
leading: Image.asset(
songs[index].albumArtwork != null
? songs[index].albumArtwork
: "assets/placeholder.png",
),
title: Text(songs[index].title),
subtitle: Text(songs[index].artist),
);
,
),
);
【问题讨论】:
【参考方案1】:在initState
中调用getAllSongs()
将(如果可能)加载歌曲但不会更改小部件状态,您有两种选择:
1- 在getAllSongs()
之后添加setState
:
Future<void> getAllSongs() async
songs = await audioQuery.getSongs();
setState(() );
2- 加载小部件树中的项目:
@override
Widget build(BuildContext context)
return Scaffold(
backgroundColor: Colors.grey[900],
body: FutureBuilder(
future: getAllSongs(),
builder: (context, item)
// Null data
if (item.data == null) return const CircularProgressIndicator();
// Empty list
if (item.data!.isEmpty) return const Text("Nothing found!");
// Load items
songs = item.data!;
return ListView.builder(
itemCount: songs.length,
itemBuilder: (context, index)
return ListTile(
leading: Image.asset(
songs[index].albumArtwork != null
? songs[index].albumArtwork
: "assets/placeholder.png",
),
title: Text(songs[index].title),
subtitle: Text(songs[index].artist),
);
,
);
,
),
);
记住,要获取大部分用户信息,您需要request the permission
【讨论】:
circumprogressindicator();,一直滚动但不带出歌曲列表以上是关于使用颤振音频查询后没有在我的应用程序中获取歌曲文件的主要内容,如果未能解决你的问题,请参考以下文章
从歌曲中获取当前音频频率 - Java(也许使用 FFT?)