Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. How to access the cover image of mp3 file from its metadata in QML?
Forum Updated to NodeBB v4.3 + New Features

How to access the cover image of mp3 file from its metadata in QML?

Scheduled Pinned Locked Moved Solved QML and Qt Quick
13 Posts 3 Posters 4.7k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Nisha_RN Offline
    Nisha_RN Offline
    Nisha_R
    wrote on last edited by
    #3

    @raven-worx yes it has a cover art in its meta data.

    1 Reply Last reply
    1
    • p3c0P Offline
      p3c0P Offline
      p3c0
      Moderators
      wrote on last edited by
      #4

      @Nisha_R coverart URL is different than covert art image. I guess the media file contains cover art image.

      157

      1 Reply Last reply
      3
      • Nisha_RN Offline
        Nisha_RN Offline
        Nisha_R
        wrote on last edited by
        #5

        @p3c0 thank you,
        what has to be assigned to image source to access its embedded cover image from its metadata

        1 Reply Last reply
        0
        • p3c0P Offline
          p3c0P Offline
          p3c0
          Moderators
          wrote on last edited by
          #6

          @Nisha_R AFAICS there is no way to do so than using some 3rd party library for extracting it.

          157

          1 Reply Last reply
          1
          • Nisha_RN Offline
            Nisha_RN Offline
            Nisha_R
            wrote on last edited by
            #7

            @p3c0 ok i shall look for something like that.
            Thank you.

            raven-worxR 1 Reply Last reply
            1
            • Nisha_RN Nisha_R

              @p3c0 ok i shall look for something like that.
              Thank you.

              raven-worxR Offline
              raven-worxR Offline
              raven-worx
              Moderators
              wrote on last edited by
              #8

              @Nisha_R
              based on the propsals above you could use id3lib to do the following:

              1. implement a QQuickImageProvider, since images can only be set by URL in QML
              2. register this image provider with a name like "Mp3CoverArt": engine->addImageProvider(QLatin1String("Mp3CoverArt"), new MyMp3CoverArtImageProvider);
              3. in QML you can request the image with source: "image://Mp3CoverArt/<custom-id-of-mp3-file>". You could also specify the path to the mp3 file as an 'id', but make sure the URL stays valid. (e.g. you could encode the path as base64)
              4. in the image provider you will receive the url you set (convert it back from base64)
              5. use id3lib to retrieve the image: Important for you will be the Find(), GetRawBinary(), using the frame id ID3FID_PICTURE (i guess this is the right one?)
              6. create your QPixmap/QImage from the binary data using QImageReader for example

              haven't tried it, but it should work i think :)

              --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
              If you have a question please use the forum so others can benefit from the solution in the future

              1 Reply Last reply
              3
              • p3c0P Offline
                p3c0P Offline
                p3c0
                Moderators
                wrote on last edited by p3c0
                #9

                Or once you fetch the coverart using the 3rd party library you can just convert the image to base64 and directly set it to Image's source. For eg.

                imageObj->setProperty("source", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAQvUlEQVRo3t2beYxd1X3Hv79zzr33LTNv3iwez+aNDOCw2WAMKSIgpTZJaUA0SkkrNWnTVhBFolG6pJIb2ihFFk3/aEBJF0VVk0pJS5eoCYVCYwjEwhTbY4PBi7A9tpkZ27O/W
                

                157

                1 Reply Last reply
                2
                • Nisha_RN Offline
                  Nisha_RN Offline
                  Nisha_R
                  wrote on last edited by
                  #10

                  @raven-worx @p3c0 thank you:)
                  i shall try with that.

                  1 Reply Last reply
                  1
                  • Nisha_RN Offline
                    Nisha_RN Offline
                    Nisha_R
                    wrote on last edited by
                    #11

                    @p3c0 @raven-worx
                    what does metaData.coverArtUrlLarge allow us to access from its metadata?

                    1 Reply Last reply
                    0
                    • p3c0P Offline
                      p3c0P Offline
                      p3c0
                      Moderators
                      wrote on last edited by
                      #12

                      @Nisha_R I think it will be a URL for online coverart. For eg. a spotify URL
                      https://i.scdn.co/image/c3c5cbe660fe6935f2962aed480f306fa3ac1f9d
                      https://i.scdn.co/image/c0f4db566965ccc4ddad3fc0a5e6f82acc676728

                      I think they should have also provided CoverArtImage for QML mediaplayer.

                      157

                      1 Reply Last reply
                      1
                      • Nisha_RN Offline
                        Nisha_RN Offline
                        Nisha_R
                        wrote on last edited by
                        #13

                        Thank you @p3c0

                        1 Reply Last reply
                        1

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved