2

I receive tracs from API and put them to a list . I want to add tracks to Audio Player then I write my code like bellow

playlist = ConcatenatingAudioSource(
          children: [
            ClippingAudioSource(
              child: tracs[0].isDownload
                  ? AudioSource.uri(Uri.file(adr))
                  : AudioSource.uri(Uri.parse(tracs[0].sound)),
              tag: MediaItem(
                id: '${_nextMediaId++}',
                title: tracs[0].text,
                displaySubtitle: text,
                artUri: Uri.parse(
                  art,
                ),
              ),
            ),
          ],
        );

        for (var i in tracs) {
          adr = _appDocumentsDirectory + '/' + i.id.toString() + '.mp3';
          if (i.sound != tracs[0].sound) {
            if (i.isDownload) {
              playlist.add(AudioSource.uri(
                Uri.file(adr),
                tag: MediaItem(
                    id: '${_nextMediaId++}',
                    title: i.text,
                    artUri: Uri.parse(art),
                    genre: i.video),
              ));
            } else {
              playlist.add(
                AudioSource.uri(
                  Uri.parse(i.sound),
                  tag: MediaItem(
                      id: '${_nextMediaId++}',
                      title: i.text,
                      artUri: Uri.parse(art),
                      genre: i.video),
                ),
              );
            }
          }
        }

await audioPlayer.setAudioSource(playlist);

when audioPlayer.setAudioSource an error thrown : _CastError (type 'MediaItem' is not a subtype of type 'String?' in type cast)

audioPlayer is a Just_Audio.AudioPlayer playlist is a Just_Audio.ConcatenatingAudioSource


just_audio: ^0.9.32

audioplayers: ^3.0.1

just_audio_background: ^0.0.1-beta.9

MMSH
  • 59
  • 9

0 Answers0