diff --git a/src/services/mpris/player.cpp b/src/services/mpris/player.cpp index 48bd4768..b2d4af60 100644 --- a/src/services/mpris/player.cpp +++ b/src/services/mpris/player.cpp @@ -271,16 +271,21 @@ void MprisPlayer::onMetadataChanged() { auto trackChanged = false; + QString trackId; auto trackidVariant = this->pMetadata.get().value("mpris:trackid"); - if (trackidVariant.isValid() && trackidVariant.canConvert()) { - auto trackId = trackidVariant.toString(); - - if (trackId != this->mTrackId) { - this->mTrackId = trackId; - trackChanged = true; + if (trackidVariant.isValid()) { + if (trackidVariant.canConvert()) { + trackId = trackidVariant.toString(); + } else if (trackidVariant.canConvert()) { + trackId = trackidVariant.value().path(); } } + if (trackId != this->mTrackId) { + this->mTrackId = trackId; + trackChanged = true; + } + // Helps to catch players without trackid. auto urlVariant = this->pMetadata.get().value("xesam:url"); if (urlVariant.isValid() && urlVariant.canConvert()) {