diff --git a/src/cards/ha-media_player-card.html b/src/cards/ha-media_player-card.html
index bba2a677e3..980f63475a 100644
--- a/src/cards/ha-media_player-card.html
+++ b/src/cards/ha-media_player-card.html
@@ -279,15 +279,16 @@ Polymer({
this.$.cover.style.backgroundImage = '';
}
- if (playerObj.isPlaying) {
+ if (playerObj.isPlaying && playerObj.showProgress) {
if (!this._positionTracking) {
this._positionTracking = setInterval(this.updatePlaybackPosition, 1000);
}
- this.updatePlaybackPosition();
} else if (this._positionTracking) {
clearInterval(this._positionTracking);
this._positionTracking = null;
- this.playbackPosition = 0;
+ }
+ if (playerObj.showProgress) {
+ this.updatePlaybackPosition();
}
},
diff --git a/src/util/media-player-model.html b/src/util/media-player-model.html
index e111b8fca1..bebd18ba94 100644
--- a/src/util/media-player-model.html
+++ b/src/util/media-player-model.html
@@ -51,15 +51,18 @@
addGetter('showProgress', function () {
return (
(this.isPlaying || this.isPaused) &&
+ 'media_duration' in this.stateObj.attributes &&
'media_position' in this.stateObj.attributes &&
'media_position_updated_at' in this.stateObj.attributes);
});
addGetter('currentProgress', function () {
- return (
- this.stateObj.attributes.media_position +
- ((Date.now() -
- new Date(this.stateObj.attributes.media_position_updated_at)) / 1000));
+ var progress = this.stateObj.attributes.media_position;
+ if (this.isPlaying) {
+ progress += (Date.now() -
+ new Date(this.stateObj.attributes.media_position_updated_at).getTime()) / 1000.0;
+ }
+ return progress;
});
/* eslint-disable no-bitwise */