flutter 只是音频播放器插件有一个源错误

0md85ypi  于 2022-11-30  发布在  Flutter
关注(0)|答案(1)|浏览(227)

我正在创建这个音乐播放器,我想播放我的播放列表中的音频我使用on_audio_query插件来查询我创建的播放列表文件夹中的所有音频,我使用just_audio插件作为我的播放器。但问题是每次我尝试播放歌曲时,它都会返回一个错误,说源错误

FutureBuilder<List<SongModel>>(
          future: _audioQuery.queryAudiosFrom(
              AudiosFromType.PLAYLIST, widget.playlistpath,
              ignoreCase: true),
          builder: (context, item) {
            if (item.data == null) {
              return const Text("Searching for audio");
            }
            if (item.data!.isEmpty) {
              return const Text("No music Audio found");
            }
            return ListView.builder(
                shrinkWrap: true,
                physics: const NeverScrollableScrollPhysics(),
                itemCount: item.data!.length,
                itemBuilder: (context, index) {
                  return ListTile(
                    title: Text(item.data![index].title),
                    onTap: () async {
                      try {
                        debugPrint("${item.data![index].uri}");
                        await _player.setAudioSource(AudioSource.uri(
                            Uri.parse(item.data![index].uri!)));
                        // await _player.setAudioSource(
                        //     createPlaylist(item.data!),
                        //     initialIndex: index);
                        await _player.play();
                      } catch (e) {
                        debugPrint("$e");
                      }
                    },
                  );
                });
          }),

I/扑动(18513):(0)源错误

8tntrjer

8tntrjer1#

兄弟我也面临着这个问题。我没有任何解决办法。所以我所做的是,我只是把当前的歌曲Map项目存储在一个变量中,然后用那个Map项目播放歌曲在just_audio:

void playSong() {

Map map = widget.songModel.getMap;

try{
  setState(() {
    isPlaying = true;
    indexno = widget.indexno;
    songId = widget.songModel.id;
    songName = widget.songModel.displayNameWOExt;
    artistName = widget.songModel.artist!;
  });

  audioPlayer.setAudioSource(
    AudioSource.uri(Uri.parse(map['_data']))
  );

  audioPlayer.play();

} on Exception {
  log("cannot parse audio");
}}

此处map ['_data']将返回音频的确切位置。
例如:“
/存储/6804-D450/音乐/ma音乐/音乐. mp3
"。
也可以打印Map变量以查看其他字段。

相关问题