The problem can easily seen this screenshot: https://i.imgur.com/cL09Aub.png
Album Art of the currently playing track should be displayed instead of the Elisa icon.
Created attachment 125051 [details]
Works for me
Works for me--for that exact song, even. :)
Created attachment 125057 [details]
strawberry vs elisa
I can confim with elisa 19.12.1 from Arch repos.
Apparently it's a random problem.
My attachment shows strawberry and elisa playing the same file.
Ah, I found a way to reliably reproduce this: you need to have multiple playback streams going such that the applet has a combobox that allows you to select which one it controls. When the combobox shows "Elisa" or "Choose player automatically".
Now I'm wondering if this really is Elisa's fault or of it's a bug in the Media Player applet.
Never mind, that was a red herring, and this is definitely an Elisa bug.
Using Plasma Engine Explorer (`plasmaengineexplorer`) I can see that the problem is that *sometimes* Elisa sends the mpris2 data enging an mpris:arturl metadata tag that looks like "image://cover/home/nate/Music/System of a Down/Hypnotize/10 She's like Heroin.mp3". URLs like this show no album art in the Media Player applet. However at other times it sends a file:// URL to an image file.
For me it depends on the song, which points to some issue in the way the album art is stores for these songs. I will attach two songs from y collection, one that triggers the issue and one that does not.
Created attachment 125064 [details]
Song that causes Media Player applet to receive an invalid art URL
Created attachment 125065 [details]
Song that gives the Media Player applet a valid art URL
The ones with "image://..." urls are the ones with embedded cover art, which is dynamically loaded from the file.
Interesting. Is there a way to translate this to a file path that the MPRIS data engine can see? Or would we need to give it the capacity to handle those kinds of paths by extracting the image on the fly using KFileMetadata or something?
Though the MPRIS spec does not explicitly state this, I guess it actually needs a valid url to an image file. In that case, Elisa must extract the image from the metadata.
Thanks for the analysis work. Well done !
The easiest solution (at least from my point of view) is probably to use data embedded in the url (https://en.wikipedia.org/wiki/Data_URI_scheme).
That allow to use the data in the track without duplicating it anywhere. This way the visualization would get the data in a correct way (valid url). It would look like the current image provider that uses directly the data from the track.
I can work on that when I will have more time but do not expect me before a few weeks at least.
I will work on that for the next stable release.
https://invent.kde.org/kde/elisa/-/merge_requests/105 is a candidate fix pending review.
Please test if you can ?
Created attachment 126900 [details]
I tried to run kdesrc-build and it's failing to install (compiled successfully) with the following error:
CMake Error at cmake_install.cmake:41 (file):
file INSTALL cannot copy file
"/usr/share/applications/org.kde.elisa.desktop": Permission denied.
I believe, this is trying to replace the desktop file of my stable Elisa app from my distro, which is not what it should be doing.
Also, I tried to kdesrc-run elisa which gives the following error:
QQmlApplicationEngine failed to load component
qrc:/qml/ElisaMainWindow.qml:182:13: Type HeaderBar unavailable
qrc:/qml/HeaderBar.qml:307:25: Type SimplePlayListView unavailable
qrc:/qml/SimplePlayListView.qml:100:13: Type PlayListEntry unavailable
qrc:/qml/PlayListEntry.qml:72:27: Type MediaTrackMetadataView unavailable
qrc:/qml/MediaTrackMetadataView.qml:49:5: EditableTrackMetadataModel is not a type
From: Matthieu Gallien <firstname.lastname@example.org>
Sent: 20 March 2020 3:04 AM
To: email@example.com <firstname.lastname@example.org>
Subject: [elisa] [Bug 416131] Elisa doesn't export the Album Art to the Media Player applet
--- Comment #12 from Matthieu Gallien <email@example.com> ---
https://invent.kde.org/kde/elisa/-/merge_requests/105 is a candidate fix
Please test if you can ?
You are receiving this mail because:
You reported the bug.
Yeah, it's trying to install Elisa on top of the system version in /usr, which is incorrect. It looks like your ~/.kdesrc-buildrc file is misconfigured. The correct values in that file are more like this:
# Install directory for KDE software
# Directory for downloaded source code
# Directory to build KDE into before installing
# relative to source-dir by default
Also these kinds of questions would ideally be asked in the kde-devel channel. See https://community.kde.org/Get_Involved#Getting_in_touch_and_working_together
Git commit e674a748c18b14161d71538522c33838c1735f52 by Matthieu Gallien.
Committed on 20/03/2020 at 15:00.
Pushed by mgallien into branch 'release/20.04'.
fix invalid URL when sending cover image in mpris for embedded covers
use a base 64 encoded data url with inline image data
M +21 -1 src/mpris2/mediaplayer2player.cpp