diff --git a/README.md b/README.md index 4defebaf..573c6ff3 100644 --- a/README.md +++ b/README.md @@ -226,7 +226,7 @@ live: | `auto_play` | `all` | :heavy_multiplication_x: | Whether to automatically play live camera feeds. `never` will never automatically play, `selected` will automatically play when a camera is selected in the carousel, `visible` will automatically play when the browser/tab becomes visible or `all` on any opportunity to automatically play (i.e. either case). Some live live providers (e.g. `webrtc-card`, `jsmpeg`) do not support the prevention of automatic play on initial load, but should still respect the value of this flag on play-after-pause.| | `auto_pause` | `never` | :heavy_multiplication_x: | Whether to automatically pause live camera feeds. `never` will never automatically pause, `unselected` will automatically pause when a camera is unselected in the carousel, `hidden` will automatically pause when the browser/tab becomes hidden or `all` on any opportunity to automatically pause (i.e. either case). **Caution**: Some live providers (e.g. `jsmpeg`) may not offer human-accessible means to resume play if it is paused, unless the `auto_play` option (above) is used.| | `auto_mute` | `all` | :heavy_multiplication_x: | Whether to automatically mute live camera feeds. `never` will never automatically mute, `unselected` will automatically mute when a camera is unselected in the carousel, `hidden` will automatically mute when the browser/tab becomes hidden or `all` on any opportunity to automatically mute (i.e. either case).| -| `auto_unmute` | `never` | :heavy_multiplication_x: | Whether to automatically unmute live camera feeds. `never` will never automatically unmute, `selected` will automatically unmute when a camera is unselected in the carousel, `visible` will automatically unmute when the browser/tab becomes hidden or `all` on any opportunity to automatically unmute (i.e. either case).| +| `auto_unmute` | `never` | :heavy_multiplication_x: | Whether to automatically unmute live camera feeds. `never` will never automatically unmute, `selected` will automatically unmute when a camera is unselected in the carousel, `visible` will automatically unmute when the browser/tab becomes visible or `all` on any opportunity to automatically unmute (i.e. either case).| | `lazy_load` | `true` | :heavy_multiplication_x: | Whether or not to lazily load cameras in the camera carousel. Setting this will `false` will cause all cameras to load simultaneously when the `live` carousel is opened (or cause all cameras to load continually if both `lazy_load` and `preload` are `true`). This will result in a smoother carousel experience at a cost of (potentially) a substantial amount of continually streamed data. | | `lazy_unload` | `never` | :heavy_multiplication_x: | When to lazily **un**load lazyily-loaded cameras. `never` will never lazily-unload, `unselected` will lazy-unload a camera when it is unselected in the carousel, `hidden` will lazy-unload all cameras when the browser/tab becomes hidden or `all` on any opportunity to lazily unload (i.e. either case). This will cause a reloading delay on revisiting that camera in the carousel but will save the streaming network resources that are otherwise consumed. This option has no effect if `lazy_load` is false. Some live providers (e.g. `webrtc-card`) implement their own lazy unloading independently which may occur regardless of the value of this setting.| | `draggable` | `true` | :heavy_multiplication_x: | Whether or not the live carousel can be dragged left or right, via touch/swipe and mouse dragging. | diff --git a/src/components/live.ts b/src/components/live.ts index 77346f9a..ab32b155 100644 --- a/src/components/live.ts +++ b/src/components/live.ts @@ -242,13 +242,23 @@ export class FrigateCardLiveCarousel extends FrigateCardMediaCarousel { | AutoMediaPluginType | undefined; if (automedia) { - // If this has changed to preloaded then pause & mute, otherwise play - // and potentially unmute (depending on configuration). + // If this has changed to preloaded (i.e. is now loaded but in the + // background) take the appropriate play/pause/mute/unmute actions. if (this.preloaded) { - automedia.pause(); - automedia.mute(); + if ( + this.liveConfig?.auto_pause && + ['all', 'unselected'].includes(this.liveConfig.auto_pause) + ) { + automedia.pause(); + } + if ( + this.liveConfig?.auto_mute && + ['all', 'unselected'].includes(this.liveConfig.auto_mute) + ) { + automedia.mute(); + } } else { - automedia.play(); + this._autoPlayHandler(); this._autoUnmuteHandler(); } } @@ -330,7 +340,7 @@ export class FrigateCardLiveCarousel extends FrigateCardMediaCarousel { /** * Unmute the media on the loaded slide. */ - protected _autoUnmuteHandler(): void { + protected _autoUnmuteHandler(): void { if ( this.liveConfig?.auto_unmute && ['all', 'selected'].includes(this.liveConfig.auto_unmute) diff --git a/src/components/surround-thumbnails.ts b/src/components/surround-thumbnails.ts index ce708446..f0d62a2f 100644 --- a/src/components/surround-thumbnails.ts +++ b/src/components/surround-thumbnails.ts @@ -79,6 +79,9 @@ export class FrigateCardSurround extends LitElement { ...(this.targetView && { view: this.targetView }), target: parent, childIndex: null, + + // Don't carry over history of this 'empty' view. + previous: null, }) .dispatchChangeEvent(this); }