2

I am using Just Audio and Just Audio Background for playing music and media control on Notification.

I am able to show album, title of storage songs on Notification control but unable to show artmusic of music on Notification.

I am using on Audio query for fetching device music list and displaying in list.

 player.value.setAudioSource(AudioSource.uri(
         Uri.parse(uri),
         tag: MediaItem(
           // Specify a unique ID for each media item:
           id: id.toString(),
           // Metadata to display in the notification:
           album: album.toString(),
           title: title.toString(),
           artUri: Uri.parse("https://media.wnyc.org/i/1400/1400/l/80/1/ScienceFriday_WNYCStudios_1400.jpg"),
         ),
       ));

I am able to parse any http url of image but unable parse asset image file path in artMusic . Kindly suggest any solutions.

Rahul Kushwaha
  • 5,473
  • 3
  • 26
  • 30

1 Answers1

0

I resolved the issues in this way.

 sources.add(AudioSource.uri(Uri.parse(song.uri!),
          tag: MediaItem(
            // Specify a unique ID for each media item:
            id: song.id.toString(),
            // Metadata to display in the notification:
            album: song.album.toString(),
            title: song.title.toString(),
            artist: song.artist.toString(),
            artUri: await  getImageFileFromAssets() ,
          )));

Now create a method getImageFileFromAssets() and pass the path of assets images.

 Future<Uri> getImageFileFromAssets() async {
    final byteData = await rootBundle.load('assets/music.png');
    final buffer = byteData.buffer;
    Directory tempDir =  await getApplicationDocumentsDirectory();
    String tempPath = tempDir.path;
    var filePath =
        tempPath + '/file_01.png'; // file_01.tmp is dump file, can be anything
    return (await File(filePath).writeAsBytes(
        buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes)))
        .uri;
  }
Rahul Kushwaha
  • 5,473
  • 3
  • 26
  • 30