diff --git a/src/services/mpris/player.cpp b/src/services/mpris/player.cpp index 3b0c746..ebdbfd6 100644 --- a/src/services/mpris/player.cpp +++ b/src/services/mpris/player.cpp @@ -258,7 +258,13 @@ void MprisPlayer::onMetadataChanged() { auto trackidVariant = this->pMetadata.get().value("mpris:trackid"); if (trackidVariant.isValid() && trackidVariant.canConvert()) { - this->mTrackId = trackidVariant.value(); + auto trackId = trackidVariant.value(); + + if (trackId != this->mTrackId) { + this->mTrackId = trackId; + emit this->trackChanged(); + } + this->onSeek(0); } diff --git a/src/services/mpris/player.hpp b/src/services/mpris/player.hpp index 0b18d78..97181a5 100644 --- a/src/services/mpris/player.hpp +++ b/src/services/mpris/player.hpp @@ -242,6 +242,8 @@ public: [[nodiscard]] QList supportedMimeTypes() const; signals: + void trackChanged(); + QSDOC_HIDE void ready(); void canControlChanged(); void canPlayChanged();