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