diff --git a/extension/content-script.js b/extension/content-script.js --- a/extension/content-script.js +++ b/extension/content-script.js @@ -343,6 +343,7 @@ sendMessage("mpris", "playing", { mediaSrc: player.currentSrc || player.src, pageTitle: document.title, + poster: player.poster, duration: player.duration, currentTime: player.currentTime, playbackRate: player.playbackRate, diff --git a/host/mprisplugin.h b/host/mprisplugin.h --- a/host/mprisplugin.h +++ b/host/mprisplugin.h @@ -176,6 +176,7 @@ QString m_title; QString m_artist; QString m_album; + QUrl m_posterUrl; QUrl m_artworkUrl; qreal m_volume = 1.0; diff --git a/host/mprisplugin.cpp b/host/mprisplugin.cpp --- a/host/mprisplugin.cpp +++ b/host/mprisplugin.cpp @@ -170,6 +170,12 @@ m_url = QUrl(data.value(QStringLiteral("url")).toString()); m_mediaSrc = QUrl(data.value(QStringLiteral("mediaSrc")).toString()); + const QUrl posterUrl = QUrl(data.value(QStringLiteral("poster")).toString()); + if (m_posterUrl != posterUrl) { + m_posterUrl = posterUrl; + emitPropertyChange(m_player, "Metadata"); + } + const qreal oldVolume = volume(); m_volume = data.value(QStringLiteral("volume")).toDouble(1); @@ -451,8 +457,13 @@ if (!m_artist.isEmpty()) { metadata.insert(QStringLiteral("xesam:artist"), m_artist); } - if (m_artworkUrl.isValid()) { - metadata.insert(QStringLiteral("mpris:artUrl"), m_artworkUrl.toDisplayString()); + + QUrl artUrl = m_artworkUrl; + if (!artUrl.isValid()) { + artUrl = m_posterUrl; + } + if (artUrl.isValid()) { + metadata.insert(QStringLiteral("mpris:artUrl"), artUrl.toDisplayString()); } if (!m_album.isEmpty()) {