timingsrc 1.2.16 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,5 +3,5 @@ import type { ITimingObject } from 'timing-object';
3
3
  import { IUpdateVector } from '../interfaces';
4
4
  import { TPrepareTimingStateVectorFunction, TUpdateFunction } from '../types';
5
5
  import type { createUpdateMediaElement } from './update-media-element';
6
- export declare const createSetTimingsrcWithCustomUpdateFunction: (animationFrame: TAnimationFrameFunction, document: Document, on: TOnFunction, updateMediaElement: ReturnType<typeof createUpdateMediaElement>) => <UpdateVectorWithCustomState extends IUpdateVector>(mediaElement: HTMLMediaElement, timingObject: ITimingObject, updateFunction: TUpdateFunction<UpdateVectorWithCustomState>, prepareTimingStateVector?: null | TPrepareTimingStateVectorFunction) => () => void;
6
+ export declare const createSetTimingsrcWithCustomUpdateFunction: (animationFrame: TAnimationFrameFunction, clearInterval: Window['clearInterval'], document: Document, on: TOnFunction, setInterval: Window['setInterval'], updateMediaElement: ReturnType<typeof createUpdateMediaElement>) => <UpdateVectorWithCustomState extends IUpdateVector>(mediaElement: HTMLMediaElement, timingObject: ITimingObject, updateFunction: TUpdateFunction<UpdateVectorWithCustomState>, prepareTimingStateVector?: null | TPrepareTimingStateVectorFunction) => () => void;
7
7
  //# sourceMappingURL=set-timingsrc-with-custom-update-function.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-timingsrc-with-custom-update-function.d.ts","sourceRoot":"","sources":["../../../src/factories/set-timingsrc-with-custom-update-function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,iCAAiC,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,eAAO,MAAM,0CAA0C,mBACnC,uBAAuB,YAC7B,QAAQ,MACd,WAAW,sBACK,WAAW,+BAA+B,CAAC,uEAG7C,gBAAgB,gBAChB,aAAa,2FAED,IAAI,GAAG,iCAAiC,eA8DzE,CAAC"}
1
+ {"version":3,"file":"set-timingsrc-with-custom-update-function.d.ts","sourceRoot":"","sources":["../../../src/factories/set-timingsrc-with-custom-update-function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,iCAAiC,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAEvE,eAAO,MAAM,0CAA0C,mBACnC,uBAAuB,iBACxB,MAAM,CAAC,eAAe,CAAC,YAC5B,QAAQ,MACd,WAAW,eACF,MAAM,CAAC,aAAa,CAAC,sBACd,WAAW,+BAA+B,CAAC,uEAG7C,gBAAgB,gBAChB,aAAa,2FAED,IAAI,GAAG,iCAAiC,eA0EzE,CAAC"}
@@ -1,4 +1,4 @@
1
- export const createSetTimingsrcWithCustomUpdateFunction = (animationFrame, document, on, updateMediaElement) => {
1
+ export const createSetTimingsrcWithCustomUpdateFunction = (animationFrame, clearInterval, document, on, setInterval, updateMediaElement) => {
2
2
  return (mediaElement, timingObject, updateFunction, prepareTimingStateVector = null) => {
3
3
  let previousUpdateVectorWithCustomState = null;
4
4
  const update = () => {
@@ -18,10 +18,20 @@ export const createSetTimingsrcWithCustomUpdateFunction = (animationFrame, docum
18
18
  }
19
19
  };
20
20
  const updateConsistently = () => {
21
+ let intervalId = setInterval(() => updateOnce(), 100);
22
+ const restartInterval = () => {
23
+ clearInterval(intervalId);
24
+ intervalId = setInterval(() => updateOnce(), 100);
25
+ };
21
26
  const unsubscribeFunctions = [
22
- animationFrame()(() => updateOnce()),
27
+ () => clearInterval(intervalId),
28
+ animationFrame()(() => {
29
+ restartInterval();
30
+ updateOnce();
31
+ }),
23
32
  on(timingObject, 'change')(() => {
24
33
  if (document.visibilityState === 'hidden') {
34
+ restartInterval();
25
35
  updateOnce();
26
36
  }
27
37
  })
@@ -1 +1 @@
1
- {"version":3,"file":"set-timingsrc-with-custom-update-function.js","sourceRoot":"","sources":["../../../src/factories/set-timingsrc-with-custom-update-function.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,0CAA0C,GAAG,CACtD,cAAuC,EACvC,QAAkB,EAClB,EAAe,EACf,kBAA+D,EACjE,EAAE;IACA,OAAO,CACH,YAA8B,EAC9B,YAA2B,EAC3B,cAA4D,EAC5D,2BAAqE,IAAI,EAC3E,EAAE;QACA,IAAI,mCAAmC,GAAuC,IAAI,CAAC;QAEnF,MAAM,MAAM,GAAG,GAAG,EAAE;YAChB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC;YAC7D,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;YAE/C,mCAAmC,GAAG,cAAc,CAChD,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,EACnG,WAAW,EACX,mCAAmC,CACtC,CAAC;YAEF,MAAM,iBAAiB,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1F,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,mCAAmC,CAAC;YAEnE,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEnG,OAAO,QAAQ,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,IAAI,WAAuB,CAAC;QAE5B,MAAM,UAAU,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,MAAM,EAAE,EAAE;gBACX,WAAW,EAAE,CAAC;gBAEd,WAAW,GAAG,gBAAgB,EAAE,CAAC;aACpC;QACL,CAAC,CAAC;QACF,MAAM,kBAAkB,GAAG,GAAG,EAAE;YAC5B,MAAM,oBAAoB,GAAG;gBACzB,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;gBACpC,EAAE,CACE,YAAY,EACZ,QAAQ,CACX,CAAC,GAAG,EAAE;oBACH,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE;wBACvC,UAAU,EAAE,CAAC;qBAChB;gBACL,CAAC,CAAC;aACL,CAAC;YAEF,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC9F,CAAC,CAAC;QACF,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAC1B,EAAE,CACE,YAAY,EACZ,QAAQ,CACX,CAAC,GAAG,EAAE;YACH,IAAI,MAAM,EAAE,EAAE;gBACV,WAAW,EAAE,CAAC;gBAEd,WAAW,GAAG,kBAAkB,EAAE,CAAC;aACtC;QACL,CAAC,CAAC,CAAC;QAEP,WAAW,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAEnE,OAAO,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"set-timingsrc-with-custom-update-function.js","sourceRoot":"","sources":["../../../src/factories/set-timingsrc-with-custom-update-function.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,0CAA0C,GAAG,CACtD,cAAuC,EACvC,aAAsC,EACtC,QAAkB,EAClB,EAAe,EACf,WAAkC,EAClC,kBAA+D,EACjE,EAAE;IACA,OAAO,CACH,YAA8B,EAC9B,YAA2B,EAC3B,cAA4D,EAC5D,2BAAqE,IAAI,EAC3E,EAAE;QACA,IAAI,mCAAmC,GAAuC,IAAI,CAAC;QAEnF,MAAM,MAAM,GAAG,GAAG,EAAE;YAChB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC;YAC7D,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;YAE/C,mCAAmC,GAAG,cAAc,CAChD,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,EACnG,WAAW,EACX,mCAAmC,CACtC,CAAC;YAEF,MAAM,iBAAiB,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1F,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,mCAAmC,CAAC;YAEnE,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEnG,OAAO,QAAQ,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,IAAI,WAAuB,CAAC;QAE5B,MAAM,UAAU,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,MAAM,EAAE,EAAE;gBACX,WAAW,EAAE,CAAC;gBAEd,WAAW,GAAG,gBAAgB,EAAE,CAAC;aACpC;QACL,CAAC,CAAC;QACF,MAAM,kBAAkB,GAAG,GAAG,EAAE;YAC5B,IAAI,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;YAEtD,MAAM,eAAe,GAAG,GAAG,EAAE;gBACzB,aAAa,CAAC,UAAU,CAAC,CAAC;gBAE1B,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;YACtD,CAAC,CAAC;YACF,MAAM,oBAAoB,GAAG;gBACzB,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC;gBAC/B,cAAc,EAAE,CAAC,GAAG,EAAE;oBAClB,eAAe,EAAE,CAAC;oBAClB,UAAU,EAAE,CAAC;gBACjB,CAAC,CAAC;gBACF,EAAE,CACE,YAAY,EACZ,QAAQ,CACX,CAAC,GAAG,EAAE;oBACH,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE;wBACvC,eAAe,EAAE,CAAC;wBAClB,UAAU,EAAE,CAAC;qBAChB;gBACL,CAAC,CAAC;aACL,CAAC;YAEF,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC9F,CAAC,CAAC;QACF,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAC1B,EAAE,CACE,YAAY,EACZ,QAAQ,CACX,CAAC,GAAG,EAAE;YACH,IAAI,MAAM,EAAE,EAAE;gBACV,WAAW,EAAE,CAAC;gBAEd,WAAW,GAAG,kBAAkB,EAAE,CAAC;aACtC;QACL,CAAC,CAAC,CAAC;QAEP,WAAW,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAEnE,OAAO,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC;AACN,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQrE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,eAAO,MAAM,oBAAoB;;;;;;;;EAA0D,CAAC;AAS5F,eAAO,MAAM,oCAAoC,sVAKhD,CAAC;AAEF,eAAO,MAAM,YAAY,4LAQxB,CAAC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQrE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,eAAO,MAAM,oBAAoB;;;;;;;;EAA0D,CAAC;AAS5F,eAAO,MAAM,oCAAoC,sVAOhD,CAAC;AAEF,eAAO,MAAM,YAAY,4LAQxB,CAAC"}
@@ -17,6 +17,6 @@ export { createSetTimingsrc };
17
17
  export { createUpdateGradually };
18
18
  export const createUpdateStepwise = createUpdateStepwiseFactory(translateTimingStateVector);
19
19
  const updateMediaElement = createUpdateMediaElement(pause, play, createSetCurrentTime(new WeakMap()), createSetPlaybackRate(881 / 882, new WeakMap(), 882 / 881));
20
- export const setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(animationFrame, document, on, updateMediaElement);
20
+ export const setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(animationFrame, clearInterval, document, on, setInterval, updateMediaElement);
21
21
  export const setTimingsrc = createDefaultSetTimingsrc(createComputeVelocity, createSetTimingsrc, createUpdateGradually, createUpdateStepwise, determineSupportedPlaybackRateValues, setTimingsrcWithCustomUpdateFunction, createWindow());
22
22
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0CAA0C,EAAE,MAAM,uDAAuD,CAAC;AACnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oCAAoC,EAAE,MAAM,sDAAsD,CAAC;AAC5G,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,0BAA0B,CAAC,CAAC;AAE5F,MAAM,kBAAkB,GAAG,wBAAwB,CAC/C,KAAK,EACL,IAAI,EACJ,oBAAoB,CAAC,IAAI,OAAO,EAAE,CAAC,EACnC,qBAAqB,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,OAAO,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,0CAA0C,CAC1F,cAAc,EACd,QAAQ,EACR,EAAE,EACF,kBAAkB,CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAyB,CACjD,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,oCAAoC,EACpC,oCAAoC,EACpC,YAAY,EAAE,CACjB,CAAC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,0CAA0C,EAAE,MAAM,uDAAuD,CAAC;AACnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oCAAoC,EAAE,MAAM,sDAAsD,CAAC;AAC5G,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,0BAA0B,CAAC,CAAC;AAE5F,MAAM,kBAAkB,GAAG,wBAAwB,CAC/C,KAAK,EACL,IAAI,EACJ,oBAAoB,CAAC,IAAI,OAAO,EAAE,CAAC,EACnC,qBAAqB,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,OAAO,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC,CAC7D,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAAG,0CAA0C,CAC1F,cAAc,EACd,aAAa,EACb,QAAQ,EACR,EAAE,EACF,WAAW,EACX,kBAAkB,CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAyB,CACjD,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,oCAAoC,EACpC,oCAAoC,EACpC,YAAY,EAAE,CACjB,CAAC"}
@@ -49,7 +49,7 @@
49
49
  };
50
50
  };
51
51
 
52
- var createSetTimingsrcWithCustomUpdateFunction = function createSetTimingsrcWithCustomUpdateFunction(animationFrame, document, on, updateMediaElement) {
52
+ var createSetTimingsrcWithCustomUpdateFunction = function createSetTimingsrcWithCustomUpdateFunction(animationFrame, clearInterval, document, on, setInterval, updateMediaElement) {
53
53
  return function (mediaElement, timingObject, updateFunction) {
54
54
  var prepareTimingStateVector = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
55
55
  var previousUpdateVectorWithCustomState = null;
@@ -74,10 +74,23 @@
74
74
  }
75
75
  };
76
76
  var updateConsistently = function updateConsistently() {
77
- var unsubscribeFunctions = [animationFrame()(function () {
77
+ var intervalId = setInterval(function () {
78
78
  return updateOnce();
79
+ }, 100);
80
+ var restartInterval = function restartInterval() {
81
+ clearInterval(intervalId);
82
+ intervalId = setInterval(function () {
83
+ return updateOnce();
84
+ }, 100);
85
+ };
86
+ var unsubscribeFunctions = [function () {
87
+ return clearInterval(intervalId);
88
+ }, animationFrame()(function () {
89
+ restartInterval();
90
+ updateOnce();
79
91
  }), on(timingObject, 'change')(function () {
80
92
  if (document.visibilityState === 'hidden') {
93
+ restartInterval();
81
94
  updateOnce();
82
95
  }
83
96
  })];
@@ -365,7 +378,7 @@
365
378
 
366
379
  var createUpdateStepwise = createUpdateStepwiseFactory(timingObject.translateTimingStateVector);
367
380
  var updateMediaElement = createUpdateMediaElement(pause, play, createSetCurrentTime(new WeakMap()), createSetPlaybackRate(881 / 882, new WeakMap(), 882 / 881));
368
- var setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(subscribableThings.animationFrame, document, subscribableThings.on, updateMediaElement);
381
+ var setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(subscribableThings.animationFrame, clearInterval, document, subscribableThings.on, setInterval, updateMediaElement);
369
382
  var setTimingsrc = createDefaultSetTimingsrc(createComputeVelocity, createSetTimingsrc, createUpdateGradually, createUpdateStepwise, determineSupportedPlaybackRateValues, setTimingsrcWithCustomUpdateFunction, createWindow());
370
383
 
371
384
  exports.createSetTimingsrc = createSetTimingsrc;
package/package.json CHANGED
@@ -75,5 +75,5 @@
75
75
  "test": "grunt lint && grunt test"
76
76
  },
77
77
  "types": "build/es2019/module.d.ts",
78
- "version": "1.2.16"
78
+ "version": "1.3.0"
79
79
  }
@@ -6,8 +6,10 @@ import type { createUpdateMediaElement } from './update-media-element';
6
6
 
7
7
  export const createSetTimingsrcWithCustomUpdateFunction = (
8
8
  animationFrame: TAnimationFrameFunction,
9
+ clearInterval: Window['clearInterval'],
9
10
  document: Document,
10
11
  on: TOnFunction,
12
+ setInterval: Window['setInterval'],
11
13
  updateMediaElement: ReturnType<typeof createUpdateMediaElement>
12
14
  ) => {
13
15
  return <UpdateVectorWithCustomState extends IUpdateVector>(
@@ -46,13 +48,25 @@ export const createSetTimingsrcWithCustomUpdateFunction = (
46
48
  }
47
49
  };
48
50
  const updateConsistently = () => {
51
+ let intervalId = setInterval(() => updateOnce(), 100);
52
+
53
+ const restartInterval = () => {
54
+ clearInterval(intervalId);
55
+
56
+ intervalId = setInterval(() => updateOnce(), 100);
57
+ };
49
58
  const unsubscribeFunctions = [
50
- animationFrame()(() => updateOnce()),
59
+ () => clearInterval(intervalId),
60
+ animationFrame()(() => {
61
+ restartInterval();
62
+ updateOnce();
63
+ }),
51
64
  on(
52
65
  timingObject,
53
66
  'change'
54
67
  )(() => {
55
68
  if (document.visibilityState === 'hidden') {
69
+ restartInterval();
56
70
  updateOnce();
57
71
  }
58
72
  })
package/src/module.ts CHANGED
@@ -29,8 +29,10 @@ const updateMediaElement = createUpdateMediaElement(
29
29
 
30
30
  export const setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(
31
31
  animationFrame,
32
+ clearInterval,
32
33
  document,
33
34
  on,
35
+ setInterval,
34
36
  updateMediaElement
35
37
  );
36
38