diff --git a/lib/services/audio_service.dart b/lib/services/audio_service.dart index 4fa233b2..8c5c843b 100644 --- a/lib/services/audio_service.dart +++ b/lib/services/audio_service.dart @@ -253,6 +253,10 @@ class MusifyAudioHandler extends BaseAudioHandler { Future playSong(Map song) async { try { final isOffline = song['isOffline'] ?? false; + + final preliminaryTag = mapToMediaItem(song); + mediaItem.add(preliminaryTag); + final songUrl = isOffline ? song['audioPath'] @@ -260,7 +264,7 @@ class MusifyAudioHandler extends BaseAudioHandler { final audioSource = await buildAudioSource(song, songUrl, isOffline); - await audioPlayer.setAudioSource(audioSource); + await audioPlayer.setAudioSource(audioSource, preload: false); await audioPlayer.play(); final cacheKey = 'song_${song['ytid']}_${audioQualitySetting.value}_url'; @@ -286,7 +290,7 @@ class MusifyAudioHandler extends BaseAudioHandler { bool isOffline, ) async { final uri = Uri.parse(songUrl); - final tag = mapToMediaItem(song, songUrl); + final tag = mapToMediaItem(song); final audioSource = AudioSource.uri(uri, tag: tag); if (isOffline || !sponsorBlockSupport.value) { diff --git a/lib/utilities/mediaitem.dart b/lib/utilities/mediaitem.dart index 7dd3ae95..d0374f43 100644 --- a/lib/utilities/mediaitem.dart +++ b/lib/utilities/mediaitem.dart @@ -20,7 +20,6 @@ */ import 'package:audio_service/audio_service.dart'; -import 'package:just_audio/just_audio.dart'; Map mediaItemToMap(MediaItem mediaItem) => { 'id': mediaItem.id, @@ -30,11 +29,10 @@ Map mediaItemToMap(MediaItem mediaItem) => { 'title': mediaItem.title, 'highResImage': mediaItem.artUri.toString(), 'lowResImage': mediaItem.extras!['lowResImage'], - 'url': mediaItem.extras!['url'].toString(), 'isLive': mediaItem.extras!['isLive'], }; -MediaItem mapToMediaItem(Map song, String songUrl) => MediaItem( +MediaItem mapToMediaItem(Map song) => MediaItem( id: song['id'].toString(), album: '', artist: song['artist'].toString().trim(), @@ -44,7 +42,6 @@ MediaItem mapToMediaItem(Map song, String songUrl) => MediaItem( ? Uri.file(song['highResImage'].toString()) : Uri.parse(song['highResImage'].toString()), extras: { - 'url': songUrl, 'lowResImage': song['lowResImage'], 'ytid': song['ytid'], 'isLive': song['isLive'], @@ -52,19 +49,3 @@ MediaItem mapToMediaItem(Map song, String songUrl) => MediaItem( 'artWorkPath': song['highResImage'].toString(), }, ); - -UriAudioSource createAudioSource(MediaItem mediaItem) => AudioSource.uri( - Uri.parse(mediaItem.extras!['url'].toString()), - tag: mediaItem, -); - -List createAudioSources(List mediaItems) { - return mediaItems - .map( - (mediaItem) => AudioSource.uri( - Uri.parse(mediaItem.extras!['url'].toString()), - tag: mediaItem, - ), - ) - .toList(); -}