timingsrc 1.1.29 → 1.2.2
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.
- package/build/es2019/factories/set-timingsrc-with-custom-update-function.d.ts.map +1 -1
- package/build/es2019/factories/set-timingsrc-with-custom-update-function.js +19 -8
- package/build/es2019/factories/set-timingsrc-with-custom-update-function.js.map +1 -1
- package/build/es2019/module.d.ts.map +1 -1
- package/build/es2019/module.js +2 -2
- package/build/es2019/module.js.map +1 -1
- package/build/es2019/types/set-timingsrc-with-custom-update-function-factory.d.ts +2 -2
- package/build/es2019/types/set-timingsrc-with-custom-update-function-factory.d.ts.map +1 -1
- package/build/es5/bundle.js +18 -4
- package/package.json +22 -22
- package/src/factories/set-timingsrc-with-custom-update-function.ts +20 -3
- package/src/module.ts +7 -2
- package/src/types/set-timingsrc-with-custom-update-function-factory.ts +3 -1
|
@@ -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,EAAE,4CAA4C,EAAE,MAAM,UAAU,CAAC;AAExE,eAAO,MAAM,0CAA0C,EAAE,
|
|
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,EAAE,4CAA4C,EAAE,MAAM,UAAU,CAAC;AAExE,eAAO,MAAM,0CAA0C,EAAE,4CAiCxD,CAAC"}
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
export const createSetTimingsrcWithCustomUpdateFunction = (animationFrame, updateMediaElement) => {
|
|
2
|
-
return (mediaElement, timingObject, updateFunction, prepareTimingStateVector = null) =>
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
export const createSetTimingsrcWithCustomUpdateFunction = (animationFrame, document, on, updateMediaElement) => {
|
|
2
|
+
return (mediaElement, timingObject, updateFunction, prepareTimingStateVector = null) => {
|
|
3
|
+
const update = () => {
|
|
4
|
+
const { currentTime, duration, playbackRate } = mediaElement;
|
|
5
|
+
const timingStateVector = timingObject.query();
|
|
6
|
+
const { position, velocity } = updateFunction(prepareTimingStateVector === null ? timingStateVector : prepareTimingStateVector(timingStateVector), currentTime);
|
|
7
|
+
const sanitizedDuration = typeof duration === 'number' && !isNaN(duration) ? duration : 0;
|
|
8
|
+
updateMediaElement(currentTime, sanitizedDuration, mediaElement, playbackRate, position, velocity);
|
|
9
|
+
};
|
|
10
|
+
const unsubscribeFunctions = [
|
|
11
|
+
animationFrame()(() => update()),
|
|
12
|
+
on(timingObject, 'change')(() => {
|
|
13
|
+
if (document.visibilityState === 'hidden') {
|
|
14
|
+
update();
|
|
15
|
+
}
|
|
16
|
+
})
|
|
17
|
+
];
|
|
18
|
+
return () => unsubscribeFunctions.forEach((unsubscribe) => unsubscribe());
|
|
19
|
+
};
|
|
9
20
|
};
|
|
10
21
|
//# sourceMappingURL=set-timingsrc-with-custom-update-function.js.map
|
|
@@ -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":"AAEA,MAAM,CAAC,MAAM,0CAA0C,GAAiD,CACpG,cAAc,EACd,kBAAkB,EACpB,EAAE;IACA,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,wBAAwB,GAAG,IAAI,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"set-timingsrc-with-custom-update-function.js","sourceRoot":"","sources":["../../../src/factories/set-timingsrc-with-custom-update-function.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,0CAA0C,GAAiD,CACpG,cAAc,EACd,QAAQ,EACR,EAAE,EACF,kBAAkB,EACpB,EAAE;IACA,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,wBAAwB,GAAG,IAAI,EAAE,EAAE;QACnF,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;YAC/C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,cAAc,CACzC,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,EACnG,WAAW,CACd,CAAC;YACF,MAAM,iBAAiB,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAE1F,kBAAkB,CAAC,WAAW,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACvG,CAAC,CAAC;QAEF,MAAM,oBAAoB,GAAG;YACzB,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;YAChC,EAAE,CACE,YAAY,EACZ,QAAQ,CACX,CAAC,GAAG,EAAE;gBACH,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE;oBACvC,MAAM,EAAE,CAAC;iBACZ;YACL,CAAC,CAAC;SACL,CAAC;QAEF,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAOrE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,eAAO,MAAM,oBAAoB,0CAA0D,CAAC;AAI5F,eAAO,MAAM,oCAAoC,
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAOrE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,eAAO,MAAM,oBAAoB,0CAA0D,CAAC;AAI5F,eAAO,MAAM,oCAAoC,iEAKhD,CAAC;AAEF,eAAO,MAAM,YAAY,yCAMxB,CAAC"}
|
package/build/es2019/module.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { animationFrame } from 'subscribable-things';
|
|
1
|
+
import { animationFrame, on } from 'subscribable-things';
|
|
2
2
|
import { translateTimingStateVector } from 'timing-object';
|
|
3
3
|
import { createDefaultSetTimingsrc } from './factories/default-set-timingsrc';
|
|
4
4
|
import { createSetCurrentTime } from './factories/set-current-time';
|
|
@@ -15,6 +15,6 @@ export { createSetTimingsrc };
|
|
|
15
15
|
export { createUpdateGradually };
|
|
16
16
|
export const createUpdateStepwise = createUpdateStepwiseFactory(translateTimingStateVector);
|
|
17
17
|
const updateMediaElement = createUpdateMediaElement(pause, play, createSetCurrentTime(new WeakMap()), createSetPlaybackRate(new WeakMap()));
|
|
18
|
-
export const setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(animationFrame, updateMediaElement);
|
|
18
|
+
export const setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(animationFrame, document, on, updateMediaElement);
|
|
19
19
|
export const setTimingsrc = createDefaultSetTimingsrc(createSetTimingsrc, createUpdateGradually, createUpdateStepwise, setTimingsrcWithCustomUpdateFunction, createWindow());
|
|
20
20
|
//# sourceMappingURL=module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,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,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,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,CAAC,KAAK,EAAE,IAAI,EAAE,oBAAoB,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,qBAAqB,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;AAE5I,MAAM,CAAC,MAAM,oCAAoC,GAAG,0CAA0C,CAC1F,cAAc,EACd,QAAQ,EACR,EAAE,EACF,kBAAkB,CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAyB,CACjD,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,oCAAoC,EACpC,YAAY,EAAE,CACjB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TAnimationFrameFunction } from 'subscribable-things';
|
|
1
|
+
import { TAnimationFrameFunction, TOnFunction } from 'subscribable-things';
|
|
2
2
|
import { TSetTimingsrcWithCustomUpdateFunctionFunction } from './set-timingsrc-with-custom-update-function-function';
|
|
3
3
|
import { TUpdateMediaElementFunction } from './update-media-element-function';
|
|
4
|
-
export declare type TSetTimingsrcWithCustomUpdateFunctionFactory = (animationFrame: TAnimationFrameFunction, updateMediaElement: TUpdateMediaElementFunction) => TSetTimingsrcWithCustomUpdateFunctionFunction;
|
|
4
|
+
export declare type TSetTimingsrcWithCustomUpdateFunctionFactory = (animationFrame: TAnimationFrameFunction, document: Document, on: TOnFunction, updateMediaElement: TUpdateMediaElementFunction) => TSetTimingsrcWithCustomUpdateFunctionFunction;
|
|
5
5
|
//# sourceMappingURL=set-timingsrc-with-custom-update-function-factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-timingsrc-with-custom-update-function-factory.d.ts","sourceRoot":"","sources":["../../../src/types/set-timingsrc-with-custom-update-function-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"set-timingsrc-with-custom-update-function-factory.d.ts","sourceRoot":"","sources":["../../../src/types/set-timingsrc-with-custom-update-function-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,6CAA6C,EAAE,MAAM,sDAAsD,CAAC;AACrH,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE9E,oBAAY,4CAA4C,GAAG,CACvD,cAAc,EAAE,uBAAuB,EACvC,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,WAAW,EACf,kBAAkB,EAAE,2BAA2B,KAC9C,6CAA6C,CAAC"}
|
package/build/es5/bundle.js
CHANGED
|
@@ -47,10 +47,11 @@
|
|
|
47
47
|
};
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
-
var createSetTimingsrcWithCustomUpdateFunction = function createSetTimingsrcWithCustomUpdateFunction(animationFrame, updateMediaElement) {
|
|
50
|
+
var createSetTimingsrcWithCustomUpdateFunction = function createSetTimingsrcWithCustomUpdateFunction(animationFrame, document, on, updateMediaElement) {
|
|
51
51
|
return function (mediaElement, timingObject, updateFunction) {
|
|
52
52
|
var prepareTimingStateVector = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
53
|
-
|
|
53
|
+
|
|
54
|
+
var update = function update() {
|
|
54
55
|
var currentTime = mediaElement.currentTime,
|
|
55
56
|
duration = mediaElement.duration,
|
|
56
57
|
playbackRate = mediaElement.playbackRate;
|
|
@@ -62,7 +63,20 @@
|
|
|
62
63
|
|
|
63
64
|
var sanitizedDuration = typeof duration === 'number' && !isNaN(duration) ? duration : 0;
|
|
64
65
|
updateMediaElement(currentTime, sanitizedDuration, mediaElement, playbackRate, position, velocity);
|
|
65
|
-
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
var unsubscribeFunctions = [animationFrame()(function () {
|
|
69
|
+
return update();
|
|
70
|
+
}), on(timingObject, 'change')(function () {
|
|
71
|
+
if (document.visibilityState === 'hidden') {
|
|
72
|
+
update();
|
|
73
|
+
}
|
|
74
|
+
})];
|
|
75
|
+
return function () {
|
|
76
|
+
return unsubscribeFunctions.forEach(function (unsubscribe) {
|
|
77
|
+
return unsubscribe();
|
|
78
|
+
});
|
|
79
|
+
};
|
|
66
80
|
};
|
|
67
81
|
};
|
|
68
82
|
|
|
@@ -229,7 +243,7 @@
|
|
|
229
243
|
|
|
230
244
|
var createUpdateStepwise = createUpdateStepwiseFactory(timingObject.translateTimingStateVector);
|
|
231
245
|
var updateMediaElement = createUpdateMediaElement(pause, play, createSetCurrentTime(new WeakMap()), createSetPlaybackRate(new WeakMap()));
|
|
232
|
-
var setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(subscribableThings.animationFrame, updateMediaElement);
|
|
246
|
+
var setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(subscribableThings.animationFrame, document, subscribableThings.on, updateMediaElement);
|
|
233
247
|
var setTimingsrc = createDefaultSetTimingsrc(createSetTimingsrc, createUpdateGradually, createUpdateStepwise, setTimingsrcWithCustomUpdateFunction, createWindow());
|
|
234
248
|
|
|
235
249
|
exports.createSetTimingsrc = createSetTimingsrc;
|
package/package.json
CHANGED
|
@@ -9,31 +9,31 @@
|
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@babel/runtime": "^7.
|
|
13
|
-
"subscribable-things": "^2.1.
|
|
14
|
-
"timing-object": "^3.1.
|
|
12
|
+
"@babel/runtime": "^7.18.3",
|
|
13
|
+
"subscribable-things": "^2.1.5",
|
|
14
|
+
"timing-object": "^3.1.45",
|
|
15
15
|
"tslib": "^2.4.0"
|
|
16
16
|
},
|
|
17
17
|
"description": "A library to synchronize a MediaElement with a TimingObject.",
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@babel/core": "^7.
|
|
20
|
-
"@babel/plugin-external-helpers": "^7.
|
|
21
|
-
"@babel/plugin-transform-runtime": "^7.
|
|
22
|
-
"@babel/preset-env": "^7.
|
|
23
|
-
"@commitlint/cli": "^
|
|
24
|
-
"@commitlint/config-angular": "^
|
|
19
|
+
"@babel/core": "^7.18.2",
|
|
20
|
+
"@babel/plugin-external-helpers": "^7.17.12",
|
|
21
|
+
"@babel/plugin-transform-runtime": "^7.18.2",
|
|
22
|
+
"@babel/preset-env": "^7.18.2",
|
|
23
|
+
"@commitlint/cli": "^17.0.1",
|
|
24
|
+
"@commitlint/config-angular": "^17.0.0",
|
|
25
25
|
"@rollup/plugin-babel": "^5.3.1",
|
|
26
26
|
"chai": "^4.3.6",
|
|
27
27
|
"commitizen": "^4.2.4",
|
|
28
28
|
"cz-conventional-changelog": "^3.3.0",
|
|
29
|
-
"eslint": "^8.
|
|
30
|
-
"eslint-config-holy-grail": "^52.0.
|
|
31
|
-
"grunt": "^1.5.
|
|
29
|
+
"eslint": "^8.16.0",
|
|
30
|
+
"eslint-config-holy-grail": "^52.0.16",
|
|
31
|
+
"grunt": "^1.5.3",
|
|
32
32
|
"grunt-cli": "^1.4.3",
|
|
33
33
|
"grunt-contrib-clean": "^2.0.1",
|
|
34
34
|
"grunt-sh": "^0.2.0",
|
|
35
|
-
"husky": "^
|
|
36
|
-
"karma": "^6.3.
|
|
35
|
+
"husky": "^8.0.1",
|
|
36
|
+
"karma": "^6.3.20",
|
|
37
37
|
"karma-browserstack-launcher": "^1.6.0",
|
|
38
38
|
"karma-chrome-launcher": "^3.1.1",
|
|
39
39
|
"karma-firefox-launcher": "^2.1.2",
|
|
@@ -42,18 +42,18 @@
|
|
|
42
42
|
"karma-sinon-chai": "^2.0.2",
|
|
43
43
|
"karma-webpack": "^5.0.0",
|
|
44
44
|
"load-grunt-config": "^4.0.1",
|
|
45
|
-
"mocha": "^
|
|
45
|
+
"mocha": "^10.0.0",
|
|
46
46
|
"prettier": "^2.6.2",
|
|
47
47
|
"pretty-quick": "^3.1.3",
|
|
48
|
-
"rollup": "^2.
|
|
49
|
-
"sinon": "^
|
|
48
|
+
"rollup": "^2.75.0",
|
|
49
|
+
"sinon": "^14.0.0",
|
|
50
50
|
"sinon-chai": "^3.7.0",
|
|
51
|
-
"ts-loader": "^9.
|
|
52
|
-
"tsconfig-holy-grail": "^11.1.
|
|
51
|
+
"ts-loader": "^9.3.0",
|
|
52
|
+
"tsconfig-holy-grail": "^11.1.32",
|
|
53
53
|
"tslint": "^6.1.3",
|
|
54
54
|
"tslint-config-holy-grail": "^53.2.28",
|
|
55
|
-
"typescript": "^4.
|
|
56
|
-
"webpack": "^5.72.
|
|
55
|
+
"typescript": "^4.7.2",
|
|
56
|
+
"webpack": "^5.72.1"
|
|
57
57
|
},
|
|
58
58
|
"files": [
|
|
59
59
|
"build/es2019/",
|
|
@@ -75,5 +75,5 @@
|
|
|
75
75
|
"test": "grunt lint && grunt test"
|
|
76
76
|
},
|
|
77
77
|
"types": "build/es2019/module.d.ts",
|
|
78
|
-
"version": "1.
|
|
78
|
+
"version": "1.2.2"
|
|
79
79
|
}
|
|
@@ -2,10 +2,12 @@ import { TSetTimingsrcWithCustomUpdateFunctionFactory } from '../types';
|
|
|
2
2
|
|
|
3
3
|
export const createSetTimingsrcWithCustomUpdateFunction: TSetTimingsrcWithCustomUpdateFunctionFactory = (
|
|
4
4
|
animationFrame,
|
|
5
|
+
document,
|
|
6
|
+
on,
|
|
5
7
|
updateMediaElement
|
|
6
8
|
) => {
|
|
7
|
-
return (mediaElement, timingObject, updateFunction, prepareTimingStateVector = null) =>
|
|
8
|
-
|
|
9
|
+
return (mediaElement, timingObject, updateFunction, prepareTimingStateVector = null) => {
|
|
10
|
+
const update = () => {
|
|
9
11
|
const { currentTime, duration, playbackRate } = mediaElement;
|
|
10
12
|
const timingStateVector = timingObject.query();
|
|
11
13
|
const { position, velocity } = updateFunction(
|
|
@@ -15,5 +17,20 @@ export const createSetTimingsrcWithCustomUpdateFunction: TSetTimingsrcWithCustom
|
|
|
15
17
|
const sanitizedDuration = typeof duration === 'number' && !isNaN(duration) ? duration : 0;
|
|
16
18
|
|
|
17
19
|
updateMediaElement(currentTime, sanitizedDuration, mediaElement, playbackRate, position, velocity);
|
|
18
|
-
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const unsubscribeFunctions = [
|
|
23
|
+
animationFrame()(() => update()),
|
|
24
|
+
on(
|
|
25
|
+
timingObject,
|
|
26
|
+
'change'
|
|
27
|
+
)(() => {
|
|
28
|
+
if (document.visibilityState === 'hidden') {
|
|
29
|
+
update();
|
|
30
|
+
}
|
|
31
|
+
})
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
return () => unsubscribeFunctions.forEach((unsubscribe) => unsubscribe());
|
|
35
|
+
};
|
|
19
36
|
};
|
package/src/module.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { animationFrame } from 'subscribable-things';
|
|
1
|
+
import { animationFrame, on } from 'subscribable-things';
|
|
2
2
|
import { translateTimingStateVector } from 'timing-object';
|
|
3
3
|
import { createDefaultSetTimingsrc } from './factories/default-set-timingsrc';
|
|
4
4
|
import { createSetCurrentTime } from './factories/set-current-time';
|
|
@@ -20,7 +20,12 @@ export const createUpdateStepwise = createUpdateStepwiseFactory(translateTimingS
|
|
|
20
20
|
|
|
21
21
|
const updateMediaElement = createUpdateMediaElement(pause, play, createSetCurrentTime(new WeakMap()), createSetPlaybackRate(new WeakMap()));
|
|
22
22
|
|
|
23
|
-
export const setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(
|
|
23
|
+
export const setTimingsrcWithCustomUpdateFunction = createSetTimingsrcWithCustomUpdateFunction(
|
|
24
|
+
animationFrame,
|
|
25
|
+
document,
|
|
26
|
+
on,
|
|
27
|
+
updateMediaElement
|
|
28
|
+
);
|
|
24
29
|
|
|
25
30
|
export const setTimingsrc = createDefaultSetTimingsrc(
|
|
26
31
|
createSetTimingsrc,
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { TAnimationFrameFunction } from 'subscribable-things';
|
|
1
|
+
import { TAnimationFrameFunction, TOnFunction } from 'subscribable-things';
|
|
2
2
|
import { TSetTimingsrcWithCustomUpdateFunctionFunction } from './set-timingsrc-with-custom-update-function-function';
|
|
3
3
|
import { TUpdateMediaElementFunction } from './update-media-element-function';
|
|
4
4
|
|
|
5
5
|
export type TSetTimingsrcWithCustomUpdateFunctionFactory = (
|
|
6
6
|
animationFrame: TAnimationFrameFunction,
|
|
7
|
+
document: Document,
|
|
8
|
+
on: TOnFunction,
|
|
7
9
|
updateMediaElement: TUpdateMediaElementFunction
|
|
8
10
|
) => TSetTimingsrcWithCustomUpdateFunctionFunction;
|