diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js
index 7732537b09..2fffb43ce5 100644
--- a/src/controllers/playback/video/index.js
+++ b/src/controllers/playback/video/index.js
@@ -1835,21 +1835,11 @@ export default function (view) {
};
nowPlayingPositionSlider.getMarkerInfo = function () {
- const markers = [];
-
- const item = currentItem;
-
// use markers based on chapters
- if (item?.Chapters?.length) {
- item.Chapters.forEach(currentChapter => {
- markers.push({
- name: currentChapter.Name,
- progress: currentChapter.StartPositionTicks / item.RunTimeTicks
- });
- });
- }
-
- return markers;
+ return currentItem?.Chapters?.map(currentChapter => ({
+ name: currentChapter.Name,
+ progress: currentChapter.StartPositionTicks / currentItem.RunTimeTicks
+ })) || [];
};
view.querySelector('.btnPreviousTrack').addEventListener('click', function () {
diff --git a/src/elements/emby-slider/emby-slider.js b/src/elements/emby-slider/emby-slider.js
index 03cbf141e2..f4bc38a052 100644
--- a/src/elements/emby-slider/emby-slider.js
+++ b/src/elements/emby-slider/emby-slider.js
@@ -1,3 +1,5 @@
+import isEqual from 'lodash-es/isEqual';
+
import browser from '../../scripts/browser';
import dom from '../../scripts/dom';
import layoutManager from '../../components/layoutManager';
@@ -203,16 +205,20 @@ function setMarker(range, valueMarker, marker, valueProgress) {
}
function updateMarkers(range, currentValue) {
- if (range.getMarkerInfo && !range.markerInfo) {
- range.markerInfo = range.getMarkerInfo();
+ if (range.getMarkerInfo) {
+ const newMarkerInfo = range.getMarkerInfo();
- let markersHtml = '';
- range.markerInfo.forEach(() => {
- markersHtml += '';
- });
- range.markerContainerElement.innerHTML = markersHtml;
+ if (!range.markerInfo || !isEqual(range.markerInfo, newMarkerInfo)) {
+ range.markerInfo = newMarkerInfo;
- range.markerElements = range.markerContainerElement.querySelectorAll('.sliderMarker');
+ let markersHtml = '';
+ range.markerInfo.forEach(() => {
+ markersHtml += '';
+ });
+ range.markerContainerElement.innerHTML = markersHtml;
+
+ range.markerElements = range.markerContainerElement.querySelectorAll('.sliderMarker');
+ }
}
if (range.markerInfo?.length && range.markerElements?.length) {