如何解决如何从audio_service中的firestore动态填充MediaItem?
我一直在尝试使用 Firestore 中的一些音频数据动态填充 MediaItem。
我使用的是确切的插件示例,但这次 mediaItems 是从 firestore 动态获取的。我已经多次查看我的代码,但我无法弄清楚我做错了什么。
这是我的尝试:
首先,我使用 StreamBuilder 获取歌曲数据,并将其作为 DocumentSnapshot 列表传递给 AudioServicePlayer() 页面。
List<DocumentSnapshot> _list;
_list = snapshot.data.docs;
Flexible(
child: ListView.builder(
itemCount: 1,itemBuilder: (BuildContext context,int index) {
return InkWell(
onTap: () {
Navigator.push(
context,MaterialPageRoute(
builder: (context) => JustAudioPlaylist(
songs: [_list[index]],),));
},child:
Container(child: Center(child: Text('My Playlists'))),);
}),)
我按预期成功收到了 QueryDocumentSnapshot。但是,当我尝试使用 widget.songs 列表填充 MediaItem 时,它只返回一个没有错误的空白页面。我不知道我在这里做错了什么;
class AudioServicePlayer extends StatefulWidget {
static const String id = 'audio-service';
List<DocumentSnapshot> songs = [];
AudioServicePlayer({this.songs});
@override
_AudioServicePlayerState createState() => _AudioServicePlayerState();
}
class _AudioServicePlayerState extends State<AudioServicePlayer> {
MediaLibrary _mediaLibrary = MediaLibrary();
@override
void initState() {
_mediaLibrary._items.addAll(widget.songs
.map((song) => MediaItem(
// This can be any unique id,but we use the audio URL for convenience.
id: song['song'],album: "Science Friday",title: song['songTitle'],artist: song['artist']['artistName'],duration: Duration(milliseconds: 5739820),artUri: Uri.parse(song['songImage']).toString(),))
.toList());
super.initState();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。