diff --git a/src/data/media-player.ts b/src/data/media-player.ts index 657b2bbf41..c666c0ec52 100644 --- a/src/data/media-player.ts +++ b/src/data/media-player.ts @@ -73,7 +73,9 @@ export interface MediaPlayerEntity extends HassEntityBase { | "off" | "on" | "unavailable" - | "unknown"; + | "unknown" + | "standby" + | "buffering"; } export const enum MediaPlayerEntityFeature { diff --git a/src/panels/media-browser/browser-media-player.ts b/src/panels/media-browser/browser-media-player.ts index 53aa891a7b..d8c082f1ac 100644 --- a/src/panels/media-browser/browser-media-player.ts +++ b/src/panels/media-browser/browser-media-player.ts @@ -70,10 +70,6 @@ export class BrowserMediaPlayer { } } - public get isPlaying(): boolean { - return this.buffering || (!this.player.paused && !this.player.ended); - } - static idleStateObj(): MediaPlayerEntity { const now = new Date().toISOString(); return { @@ -88,9 +84,13 @@ export class BrowserMediaPlayer { toStateObj(): MediaPlayerEntity { // https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement - const base = BrowserMediaPlayer.idleStateObj(); - base.state = this.isPlaying ? "playing" : "paused"; - base.attributes = { + const stateObj = BrowserMediaPlayer.idleStateObj(); + stateObj.state = this.buffering + ? "buffering" + : this.player.paused || this.player.ended + ? "paused" + : "playing"; + stateObj.attributes = { media_title: this.item.title, entity_picture: this.item.thumbnail, volume_level: this.player.volume, @@ -103,10 +103,10 @@ export class BrowserMediaPlayer { }; if (this.player.duration) { - base.attributes.media_duration = this.player.duration; - base.attributes.media_position = this.player.currentTime; - base.attributes.media_position_updated_at = base.last_updated; + stateObj.attributes.media_duration = this.player.duration; + stateObj.attributes.media_position = this.player.currentTime; + stateObj.attributes.media_position_updated_at = stateObj.last_updated; } - return base; + return stateObj; } } diff --git a/src/panels/media-browser/ha-bar-media-player.ts b/src/panels/media-browser/ha-bar-media-player.ts index 17e2986ab5..c41d57c9a8 100644 --- a/src/panels/media-browser/ha-bar-media-player.ts +++ b/src/panels/media-browser/ha-bar-media-player.ts @@ -244,7 +244,7 @@ export class BarMediaPlayer extends SubscribeMixin(LitElement) {