微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从audio_service中的firestore动态填充MediaItem?

如何解决如何从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 举报,一经查实,本站将立刻删除。