@twick/2d 0.13.0 → 0.14.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.
- package/LICENSE +21 -0
- package/editor/editor/tsconfig.build.tsbuildinfo +1 -1
- package/lib/components/Audio.d.ts.map +1 -1
- package/lib/components/Audio.js +3 -33
- package/lib/components/CodeBlock.d.ts +1 -1
- package/lib/components/Media.d.ts +0 -6
- package/lib/components/Media.d.ts.map +1 -1
- package/lib/components/Media.js +39 -255
- package/lib/components/Node.d.ts +1 -1
- package/lib/components/Path.d.ts +1 -1
- package/lib/components/SVG.d.ts +1 -1
- package/lib/components/Shape.d.ts +1 -1
- package/lib/components/Video.d.ts +1 -0
- package/lib/components/Video.d.ts.map +1 -1
- package/lib/components/Video.js +65 -70
- package/lib/components/utils/waitUntil.d.ts +7 -0
- package/lib/components/utils/waitUntil.d.ts.map +1 -0
- package/lib/components/utils/waitUntil.js +15 -0
- package/lib/tsconfig.build.tsbuildinfo +1 -1
- package/lib/utils/waitUntil.d.ts +7 -0
- package/lib/utils/waitUntil.d.ts.map +1 -0
- package/lib/utils/waitUntil.js +15 -0
- package/package.json +5 -4
- package/src/lib/components/Audio.ts +2 -39
- package/src/lib/components/Media.ts +45 -275
- package/src/lib/components/Video.ts +78 -77
- package/src/lib/utils/waitUntil.ts +18 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Audio.d.ts","sourceRoot":"","sources":["../../src/lib/components/Audio.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,qBACa,KAAM,SAAQ,KAAK;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAwC;gBAEjD,KAAK,EAAE,UAAU;IAIpC,SAAS,CAAC,YAAY,IAAI,gBAAgB;IAI1C,SAAS,CAAC,WAAW,IAAI,gBAAgB;IAIzC,SAAS,CAAC,eAAe,IAAI,gBAAgB;IAK7C,SAAS,CAAC,KAAK,IAAI,gBAAgB;
|
|
1
|
+
{"version":3,"file":"Audio.d.ts","sourceRoot":"","sources":["../../src/lib/components/Audio.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,qBACa,KAAM,SAAQ,KAAK;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAwC;gBAEjD,KAAK,EAAE,UAAU;IAIpC,SAAS,CAAC,YAAY,IAAI,gBAAgB;IAI1C,SAAS,CAAC,WAAW,IAAI,gBAAgB;IAIzC,SAAS,CAAC,eAAe,IAAI,gBAAgB;IAK7C,SAAS,CAAC,KAAK,IAAI,gBAAgB;IA0BnC,SAAS,CAAC,WAAW,IAAI,gBAAgB;IA6BzC,SAAS,CAAC,eAAe,IAAI,gBAAgB;cAoCpB,IAAI,CAAC,OAAO,EAAE,wBAAwB;CAahE"}
|
package/lib/components/Audio.js
CHANGED
|
@@ -23,41 +23,13 @@ let Audio = Audio_1 = class Audio extends Media {
|
|
|
23
23
|
}
|
|
24
24
|
audio() {
|
|
25
25
|
const src = this.src();
|
|
26
|
-
|
|
27
|
-
const key = `${this.key}/${src || 'pending'}`;
|
|
26
|
+
const key = `${this.key}/${src}`;
|
|
28
27
|
let audio = Audio_1.pool[key];
|
|
29
28
|
if (!audio) {
|
|
30
29
|
audio = document.createElement('audio');
|
|
31
30
|
audio.crossOrigin = 'anonymous';
|
|
32
|
-
// Only set src if it's valid, otherwise leave it empty
|
|
33
|
-
if (src && src !== 'undefined') {
|
|
34
|
-
audio.src = src;
|
|
35
|
-
}
|
|
36
|
-
Audio_1.pool[key] = audio;
|
|
37
|
-
}
|
|
38
|
-
else if (src && src !== 'undefined' && audio.src !== src) {
|
|
39
|
-
// Update existing audio element if src has changed and is now valid
|
|
40
31
|
audio.src = src;
|
|
41
|
-
|
|
42
|
-
delete Audio_1.pool[key];
|
|
43
|
-
const newKey = `${this.key}/${src}`;
|
|
44
|
-
Audio_1.pool[newKey] = audio;
|
|
45
|
-
}
|
|
46
|
-
// If src is still undefined, wait for it to become available
|
|
47
|
-
if (!src || src === 'undefined') {
|
|
48
|
-
DependencyContext.collectPromise(new Promise(resolve => {
|
|
49
|
-
// Check periodically for valid src
|
|
50
|
-
const checkSrc = () => {
|
|
51
|
-
const currentSrc = this.src();
|
|
52
|
-
if (currentSrc && currentSrc !== 'undefined') {
|
|
53
|
-
resolve();
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
setTimeout(checkSrc, 10);
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
checkSrc();
|
|
60
|
-
}));
|
|
32
|
+
Audio_1.pool[key] = audio;
|
|
61
33
|
}
|
|
62
34
|
const weNeedToWait = this.waitForCanPlayNecessary(audio);
|
|
63
35
|
if (!weNeedToWait) {
|
|
@@ -119,8 +91,6 @@ let Audio = Audio_1 = class Audio extends Media {
|
|
|
119
91
|
return audio;
|
|
120
92
|
}
|
|
121
93
|
async draw(context) {
|
|
122
|
-
// Auto-start playback if Revideo is playing but media isn't
|
|
123
|
-
this.autoPlayBasedOnRevideo();
|
|
124
94
|
const playbackState = this.view().playbackState();
|
|
125
95
|
playbackState === PlaybackState.Playing ||
|
|
126
96
|
playbackState === PlaybackState.Presenting
|
|
@@ -145,4 +115,4 @@ Audio = Audio_1 = __decorate([
|
|
|
145
115
|
nodeName('Audio')
|
|
146
116
|
], Audio);
|
|
147
117
|
export { Audio };
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXVkaW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvQXVkaW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDN0QsT0FBTyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUd2QixJQUFNLEtBQUssYUFBWCxNQUFNLEtBQU0sU0FBUSxLQUFLO0lBRzlCLFlBQW1CLEtBQWlCO1FBQ2xDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFUyxZQUFZO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxXQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFUyxlQUFlO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFHUyxLQUFLO1FBQ2IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNqQyxJQUFJLEtBQUssR0FBRyxPQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hDLEtBQUssQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQ2hDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2hCLE9BQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFD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
|
|
@@ -70,7 +70,7 @@ export declare class CodeBlock extends Shape {
|
|
|
70
70
|
* it instead.
|
|
71
71
|
*/
|
|
72
72
|
edit(duration?: number, changeSelection?: CodeRange[] | boolean): (strings: TemplateStringsArray, ...rest: (Code | CodeModification)[]) => ThreadGenerator;
|
|
73
|
-
tweenCode(code: CodeTree, time: number, timingFunction: TimingFunction): Generator<void |
|
|
73
|
+
tweenCode(code: CodeTree, time: number, timingFunction: TimingFunction): Generator<void | Promise<any> | ThreadGenerator | import("@twick/core").Promisable<any>, void, any>;
|
|
74
74
|
protected draw(context: CanvasRenderingContext2D): Promise<void>;
|
|
75
75
|
protected selectionStrength(x: number, y: number): number;
|
|
76
76
|
protected static selectionStrength(selection: CodeRange[], x: number, y: number): number;
|
|
@@ -26,7 +26,6 @@ export declare abstract class Media extends Rect {
|
|
|
26
26
|
gainNode: GainNode;
|
|
27
27
|
}>;
|
|
28
28
|
protected lastTime: number;
|
|
29
|
-
private isSchedulingPlay;
|
|
30
29
|
constructor(props: MediaProps);
|
|
31
30
|
isPlaying(): boolean;
|
|
32
31
|
getCurrentTime(): number;
|
|
@@ -57,14 +56,9 @@ export declare abstract class Media extends Rect {
|
|
|
57
56
|
*/
|
|
58
57
|
protected waitForCanPlayNecessary(media: HTMLMediaElement): boolean;
|
|
59
58
|
play(): void;
|
|
60
|
-
protected schedulePlay(): void;
|
|
61
|
-
private simplePlay;
|
|
62
|
-
private actuallyPlay;
|
|
63
59
|
pause(): void;
|
|
64
60
|
clampTime(time: number): number;
|
|
65
61
|
protected collectAsyncResources(): void;
|
|
66
|
-
protected autoPlayBasedOnRevideo(): void;
|
|
67
62
|
protected getErrorReason(errCode?: number): string;
|
|
68
|
-
protected isIOS(): boolean;
|
|
69
63
|
}
|
|
70
64
|
//# sourceMappingURL=Media.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Media.d.ts","sourceRoot":"","sources":["../../src/lib/components/Media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAU3D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,GAAG,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,iCAAiC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAC1D;AA0BD,8BACsB,KAAM,SAAQ,IAAI;IACtC,
|
|
1
|
+
{"version":3,"file":"Media.d.ts","sourceRoot":"","sources":["../../src/lib/components/Media.ts"],"names":[],"mappings":"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"}
|
package/lib/components/Media.js
CHANGED
|
@@ -35,7 +35,6 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
35
35
|
constructor(props) {
|
|
36
36
|
super(props);
|
|
37
37
|
this.lastTime = -1;
|
|
38
|
-
this.isSchedulingPlay = false;
|
|
39
38
|
if (!this.awaitCanPlay()) {
|
|
40
39
|
this.scheduleSeek(this.time());
|
|
41
40
|
}
|
|
@@ -43,10 +42,7 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
43
42
|
this.play();
|
|
44
43
|
}
|
|
45
44
|
this.volume = props.volume ?? 1;
|
|
46
|
-
|
|
47
|
-
if (!this.awaitCanPlay()) {
|
|
48
|
-
this.setVolume(this.volume);
|
|
49
|
-
}
|
|
45
|
+
this.setVolume(this.volume);
|
|
50
46
|
}
|
|
51
47
|
isPlaying() {
|
|
52
48
|
return this.playing();
|
|
@@ -55,33 +51,16 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
55
51
|
return this.clampTime(this.time());
|
|
56
52
|
}
|
|
57
53
|
getDuration() {
|
|
58
|
-
|
|
59
|
-
const mElement = this.mediaElement();
|
|
60
|
-
const isVideo = (mElement instanceof HTMLVideoElement);
|
|
61
|
-
const isAudio = (mElement instanceof HTMLAudioElement);
|
|
62
|
-
return (this.isIOS() && (isVideo || isAudio)) ? 2 /** dummy duration for iOS */ : mElement.duration;
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
// If media element is not ready yet, return a default duration
|
|
66
|
-
return 0;
|
|
67
|
-
}
|
|
54
|
+
return this.mediaElement().duration;
|
|
68
55
|
}
|
|
69
56
|
getVolume() {
|
|
70
57
|
return this.volume;
|
|
71
58
|
}
|
|
72
59
|
getUrl() {
|
|
73
|
-
|
|
74
|
-
return this.mediaElement().src;
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
// If media element is not ready yet, return the src signal value
|
|
78
|
-
return this.src();
|
|
79
|
-
}
|
|
60
|
+
return this.mediaElement().src;
|
|
80
61
|
}
|
|
81
62
|
dispose() {
|
|
82
|
-
|
|
83
|
-
this.playing(false);
|
|
84
|
-
this.time.save();
|
|
63
|
+
this.pause();
|
|
85
64
|
this.remove();
|
|
86
65
|
super.dispose();
|
|
87
66
|
}
|
|
@@ -89,47 +68,33 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
89
68
|
return this.clampTime(this.time()) / this.getDuration();
|
|
90
69
|
}
|
|
91
70
|
setCurrentTime(value) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
}));
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
catch (error) {
|
|
109
|
-
// If media element is not ready yet, just update the lastTime
|
|
110
|
-
this.lastTime = value;
|
|
71
|
+
const media = this.mediaElement();
|
|
72
|
+
if (media.readyState < 2)
|
|
73
|
+
return;
|
|
74
|
+
media.currentTime = value;
|
|
75
|
+
this.lastTime = value;
|
|
76
|
+
if (media.seeking) {
|
|
77
|
+
DependencyContext.collectPromise(new Promise(resolve => {
|
|
78
|
+
const listener = () => {
|
|
79
|
+
resolve();
|
|
80
|
+
media.removeEventListener('seeked', listener);
|
|
81
|
+
};
|
|
82
|
+
media.addEventListener('seeked', listener);
|
|
83
|
+
}));
|
|
111
84
|
}
|
|
112
85
|
}
|
|
113
86
|
setVolume(volume) {
|
|
114
87
|
if (volume < 0) {
|
|
115
88
|
console.warn(`volumes cannot be negative - the value will be clamped to 0.`);
|
|
116
89
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
if (this.allowVolumeAmplificationInPreview()) {
|
|
124
|
-
this.amplify(media, volume);
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
console.warn(`you have set the volume of node ${this.key} to ${volume} - your video will be exported with the correct volume, but the browser does not support volumes higher than 1 by default. To enable volume amplification in the preview, set the "allowVolumeAmplificationInPreview" of your <Video/> or <Audio/> tag to true. Note that amplification for previews will not work if you use autoplay within the player due to browser autoplay policies: https://developer.chrome.com/blog/autoplay/#webaudio.`);
|
|
90
|
+
const media = this.mediaElement();
|
|
91
|
+
media.volume = Math.min(Math.max(volume, 0), 1);
|
|
92
|
+
if (volume > 1) {
|
|
93
|
+
if (this.allowVolumeAmplificationInPreview()) {
|
|
94
|
+
this.amplify(media, volume);
|
|
95
|
+
return;
|
|
128
96
|
}
|
|
129
|
-
|
|
130
|
-
catch (error) {
|
|
131
|
-
// If media element is not ready yet, just store the volume
|
|
132
|
-
// It will be applied when the media becomes available via collectAsyncResources
|
|
97
|
+
console.warn(`you have set the volume of node ${this.key} to ${volume} - your video will be exported with the correct volume, but the browser does not support volumes higher than 1 by default. To enable volume amplification in the preview, set the "allowVolumeAmplificationInPreview" of your <Video/> or <Audio/> tag to true. Note that amplification for previews will not work if you use autoplay within the player due to browser autoplay policies: https://developer.chrome.com/blog/autoplay/#webaudio.`);
|
|
133
98
|
}
|
|
134
99
|
}
|
|
135
100
|
amplify(node, volume) {
|
|
@@ -183,22 +148,12 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
183
148
|
}
|
|
184
149
|
}
|
|
185
150
|
scheduleSeek(time) {
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
// Wait until the media is ready to seek again as
|
|
193
|
-
// setting the time before the video doesn't work reliably.
|
|
194
|
-
media.currentTime = time;
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
catch (error) {
|
|
198
|
-
// If media element is not ready yet, retry after a longer delay
|
|
199
|
-
setTimeout(() => this.scheduleSeek(time), 50);
|
|
200
|
-
}
|
|
201
|
-
}, 0);
|
|
151
|
+
this.waitForCanPlay(this.mediaElement(), () => {
|
|
152
|
+
const media = this.mediaElement();
|
|
153
|
+
// Wait until the media is ready to seek again as
|
|
154
|
+
// setting the time before the video doesn't work reliably.
|
|
155
|
+
media.currentTime = time;
|
|
156
|
+
});
|
|
202
157
|
}
|
|
203
158
|
/**
|
|
204
159
|
* Waits for the canplay event to be fired before calling onCanPlay.
|
|
@@ -208,28 +163,20 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
208
163
|
* @returns
|
|
209
164
|
*/
|
|
210
165
|
waitForCanPlay(media, onCanPlay) {
|
|
211
|
-
|
|
212
|
-
if (media.readyState >= 3) {
|
|
166
|
+
if (media.readyState >= 2) {
|
|
213
167
|
onCanPlay();
|
|
214
168
|
return;
|
|
215
169
|
}
|
|
216
170
|
const onCanPlayWrapper = () => {
|
|
217
171
|
onCanPlay();
|
|
218
172
|
media.removeEventListener('canplay', onCanPlayWrapper);
|
|
219
|
-
media.removeEventListener('canplaythrough', onCanPlayWrapper);
|
|
220
173
|
};
|
|
221
174
|
const onError = () => {
|
|
222
175
|
const reason = this.getErrorReason(media.error?.code);
|
|
223
|
-
|
|
224
|
-
console.log(`ERROR: Error loading video: src="${srcValue}", ${reason}`);
|
|
225
|
-
console.log(`Media element src: "${media.src}"`);
|
|
176
|
+
console.log(`ERROR: Error loading video: ${this.src()}, ${reason}`);
|
|
226
177
|
media.removeEventListener('error', onError);
|
|
227
|
-
media.removeEventListener('canplay', onCanPlayWrapper);
|
|
228
|
-
media.removeEventListener('canplaythrough', onCanPlayWrapper);
|
|
229
178
|
};
|
|
230
|
-
// Listen for both canplay and canplaythrough events
|
|
231
179
|
media.addEventListener('canplay', onCanPlayWrapper);
|
|
232
|
-
media.addEventListener('canplaythrough', onCanPlayWrapper);
|
|
233
180
|
media.addEventListener('error', onError);
|
|
234
181
|
}
|
|
235
182
|
/**
|
|
@@ -243,151 +190,17 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
243
190
|
this.view().playbackState() === PlaybackState.Rendering);
|
|
244
191
|
}
|
|
245
192
|
play() {
|
|
246
|
-
|
|
247
|
-
|
|
193
|
+
const time = useThread().time;
|
|
194
|
+
const start = time();
|
|
195
|
+
const offset = this.time();
|
|
196
|
+
const playbackRate = this.playbackRate();
|
|
248
197
|
this.playing(true);
|
|
249
|
-
|
|
250
|
-
this.schedulePlay();
|
|
251
|
-
}
|
|
252
|
-
schedulePlay() {
|
|
253
|
-
// Prevent recursive calls
|
|
254
|
-
if (this.isSchedulingPlay) {
|
|
255
|
-
return;
|
|
256
|
-
}
|
|
257
|
-
this.isSchedulingPlay = true;
|
|
258
|
-
// Check if thread context is available before accessing it
|
|
259
|
-
let timeFunction = null;
|
|
260
|
-
try {
|
|
261
|
-
const time = useThread().time;
|
|
262
|
-
timeFunction = time;
|
|
263
|
-
}
|
|
264
|
-
catch (error) {
|
|
265
|
-
// Reset flag and use simple play without thread time
|
|
266
|
-
this.isSchedulingPlay = false;
|
|
267
|
-
this.simplePlay();
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
// We need to wait for the media to be ready before we can play it
|
|
271
|
-
// Use a setTimeout to defer the operation and avoid immediate async property access
|
|
272
|
-
setTimeout(() => {
|
|
273
|
-
// Check if we're still supposed to be playing (avoid race conditions)
|
|
274
|
-
const isPlaying = this.playing();
|
|
275
|
-
if (!isPlaying) {
|
|
276
|
-
this.isSchedulingPlay = false;
|
|
277
|
-
return;
|
|
278
|
-
}
|
|
279
|
-
// Add another timeout to further defer media element access
|
|
280
|
-
setTimeout(() => {
|
|
281
|
-
try {
|
|
282
|
-
const media = this.mediaElement();
|
|
283
|
-
// Always use waitForCanPlay to ensure media is ready
|
|
284
|
-
this.waitForCanPlay(media, () => {
|
|
285
|
-
// Double-check we're still playing before calling actuallyPlay
|
|
286
|
-
if (this.playing() && timeFunction) {
|
|
287
|
-
this.actuallyPlay(media, timeFunction);
|
|
288
|
-
}
|
|
289
|
-
// Reset the flag when done
|
|
290
|
-
this.isSchedulingPlay = false;
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
catch (error) {
|
|
294
|
-
// Reset flag before retry
|
|
295
|
-
this.isSchedulingPlay = false;
|
|
296
|
-
// If media is not ready yet, retry after a longer delay
|
|
297
|
-
setTimeout(() => this.schedulePlay(), 100);
|
|
298
|
-
}
|
|
299
|
-
}, 10);
|
|
300
|
-
}, 0);
|
|
301
|
-
}
|
|
302
|
-
simplePlay() {
|
|
303
|
-
setTimeout(() => {
|
|
304
|
-
try {
|
|
305
|
-
const media = this.mediaElement();
|
|
306
|
-
// Guard against undefined src
|
|
307
|
-
if (!media.src || media.src.includes('undefined')) {
|
|
308
|
-
return;
|
|
309
|
-
}
|
|
310
|
-
if (media.paused && this.playing()) {
|
|
311
|
-
media.playbackRate = this.playbackRate();
|
|
312
|
-
const playPromise = media.play();
|
|
313
|
-
if (playPromise !== undefined) {
|
|
314
|
-
playPromise.then(() => {
|
|
315
|
-
console.log('Simple play started successfully');
|
|
316
|
-
}).catch(error => {
|
|
317
|
-
if (error.name !== 'AbortError') {
|
|
318
|
-
console.warn('Error in simple play:', error);
|
|
319
|
-
}
|
|
320
|
-
this.playing(false);
|
|
321
|
-
});
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
catch (error) {
|
|
326
|
-
// Stop retries for errors
|
|
327
|
-
return;
|
|
328
|
-
}
|
|
329
|
-
}, 10);
|
|
330
|
-
}
|
|
331
|
-
actuallyPlay(media, timeFunction) {
|
|
332
|
-
console.log('=== actuallyPlay called ===');
|
|
333
|
-
console.log('Media element:', media);
|
|
334
|
-
console.log('Media src:', media.src);
|
|
335
|
-
console.log('Media paused:', media.paused);
|
|
336
|
-
console.log('Media readyState:', media.readyState);
|
|
337
|
-
// Make sure we're still supposed to be playing
|
|
338
|
-
if (!this.playing()) {
|
|
339
|
-
console.log('Playing state is false, aborting actuallyPlay');
|
|
340
|
-
return;
|
|
341
|
-
}
|
|
342
|
-
// Set playback rate on media element
|
|
343
|
-
media.playbackRate = this.playbackRate();
|
|
344
|
-
// Ensure the media is ready to play
|
|
345
|
-
if (media.paused) {
|
|
346
|
-
console.log('Media is paused, calling play()');
|
|
347
|
-
// Start playing the media element
|
|
348
|
-
const playPromise = media.play();
|
|
349
|
-
if (playPromise !== undefined) {
|
|
350
|
-
playPromise.then(() => {
|
|
351
|
-
console.log('Media play() promise resolved - should be playing now');
|
|
352
|
-
console.log('Post-play media paused:', media.paused);
|
|
353
|
-
console.log('Post-play media currentTime:', media.currentTime);
|
|
354
|
-
}).catch(error => {
|
|
355
|
-
// Don't warn about AbortError - it's normal when play() is interrupted by pause()
|
|
356
|
-
if (error.name !== 'AbortError') {
|
|
357
|
-
console.warn('Error playing media:', error);
|
|
358
|
-
}
|
|
359
|
-
this.playing(false);
|
|
360
|
-
});
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
else {
|
|
364
|
-
console.log('Media is already playing');
|
|
365
|
-
}
|
|
366
|
-
// Set up time synchronization
|
|
367
|
-
const start = timeFunction();
|
|
368
|
-
const offset = media.currentTime;
|
|
369
|
-
// Update time signal
|
|
370
|
-
this.time(() => {
|
|
371
|
-
const newTime = this.clampTime(offset + (timeFunction() - start) * this.playbackRate());
|
|
372
|
-
return newTime;
|
|
373
|
-
});
|
|
198
|
+
this.time(() => this.clampTime(offset + (time() - start) * playbackRate));
|
|
374
199
|
}
|
|
375
200
|
pause() {
|
|
376
|
-
// Set the playing state first
|
|
377
201
|
this.playing(false);
|
|
378
202
|
this.time.save();
|
|
379
|
-
|
|
380
|
-
// Use setTimeout to defer access and avoid async property issues
|
|
381
|
-
setTimeout(() => {
|
|
382
|
-
try {
|
|
383
|
-
const media = this.mediaElement();
|
|
384
|
-
media.pause();
|
|
385
|
-
}
|
|
386
|
-
catch (error) {
|
|
387
|
-
// If media element is not ready yet, just update the state
|
|
388
|
-
// The media won't be playing anyway if it's not ready
|
|
389
|
-
}
|
|
390
|
-
}, 0);
|
|
203
|
+
this.mediaElement().pause();
|
|
391
204
|
}
|
|
392
205
|
clampTime(time) {
|
|
393
206
|
const duration = this.getDuration();
|
|
@@ -399,26 +212,6 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
399
212
|
collectAsyncResources() {
|
|
400
213
|
super.collectAsyncResources();
|
|
401
214
|
this.seekedMedia();
|
|
402
|
-
// Ensure volume is set when media becomes available
|
|
403
|
-
this.setVolume(this.volume);
|
|
404
|
-
}
|
|
405
|
-
autoPlayBasedOnRevideo() {
|
|
406
|
-
// Auto-start/stop playback based on Revideo's playback state
|
|
407
|
-
const playbackState = this.view().playbackState();
|
|
408
|
-
// console.log('autoPlayBasedOnRevideo called:', {
|
|
409
|
-
// playbackState,
|
|
410
|
-
// currentlyPlaying: this.playing(),
|
|
411
|
-
// shouldAutoPlay: (playbackState === PlaybackState.Playing || playbackState === PlaybackState.Presenting) && !this.playing(),
|
|
412
|
-
// shouldAutoPause: playbackState === PlaybackState.Paused && this.playing()
|
|
413
|
-
// });
|
|
414
|
-
if ((playbackState === PlaybackState.Playing || playbackState === PlaybackState.Presenting) && !this.playing()) {
|
|
415
|
-
console.log('Auto-starting media playback via play() method');
|
|
416
|
-
this.play(); // Call the full play() method instead of just setting playing(true)
|
|
417
|
-
}
|
|
418
|
-
else if (playbackState === PlaybackState.Paused && this.playing()) {
|
|
419
|
-
console.log('Auto-pausing media playback via pause() method');
|
|
420
|
-
this.pause(); // Call the full pause() method
|
|
421
|
-
}
|
|
422
215
|
}
|
|
423
216
|
getErrorReason(errCode) {
|
|
424
217
|
let reason;
|
|
@@ -442,18 +235,9 @@ let Media = Media_1 = class Media extends Rect {
|
|
|
442
235
|
}
|
|
443
236
|
return reason;
|
|
444
237
|
}
|
|
445
|
-
// Helper method to check if running on iOS
|
|
446
|
-
isIOS() {
|
|
447
|
-
if (typeof navigator === 'undefined')
|
|
448
|
-
return false;
|
|
449
|
-
const isIos = /iPad|iPhone|iPod/.test(navigator.userAgent) ||
|
|
450
|
-
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1);
|
|
451
|
-
return isIos;
|
|
452
|
-
}
|
|
453
238
|
};
|
|
454
239
|
Media.amplificationPool = {};
|
|
455
240
|
__decorate([
|
|
456
|
-
initial(''),
|
|
457
241
|
signal()
|
|
458
242
|
], Media.prototype, "src", void 0);
|
|
459
243
|
__decorate([
|
|
@@ -490,4 +274,4 @@ Media = Media_1 = __decorate([
|
|
|
490
274
|
nodeName('Media')
|
|
491
275
|
], Media);
|
|
492
276
|
export { Media };
|
|
493
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvTWVkaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLEtBQUssRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFhNUIsTUFBTSxvQkFBb0IsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCNUIsQ0FBQztBQUdLLElBQWUsS0FBSyxhQUFwQixNQUFlLEtBQU0sU0FBUSxJQUFJO0lBNkN0QyxZQUFtQixLQUFpQjtRQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFKTCxhQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBSy9CLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2hDLGdEQUFnRDtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsQ0FBQztJ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
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVkaWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvTWVkaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNiLEtBQUssRUFDTCxVQUFVLEVBQ1YsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWxFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFhNUIsTUFBTSxvQkFBb0IsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCNUIsQ0FBQztBQUdLLElBQWUsS0FBSyxhQUFwQixNQUFlLEtBQU0sU0FBUSxJQUFJO0lBMkN0QyxZQUFtQixLQUFpQjtRQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFITCxhQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFJdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxT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
|
package/lib/components/Node.d.ts
CHANGED
|
@@ -232,7 +232,7 @@ export declare class Node implements Promisable<Node> {
|
|
|
232
232
|
readonly composite: SimpleSignal<boolean, this>;
|
|
233
233
|
readonly compositeOperation: SimpleSignal<GlobalCompositeOperation, this>;
|
|
234
234
|
private readonly compositeOverride;
|
|
235
|
-
protected tweenCompositeOperation(value: SignalValue<GlobalCompositeOperation>, time: number, timingFunction: TimingFunction): Generator<void |
|
|
235
|
+
protected tweenCompositeOperation(value: SignalValue<GlobalCompositeOperation>, time: number, timingFunction: TimingFunction): Generator<void | Promise<any> | ThreadGenerator | Promisable<any>, void, any>;
|
|
236
236
|
/**
|
|
237
237
|
* Represents the opacity of this node in the range 0-1.
|
|
238
238
|
*
|
package/lib/components/Path.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare class Path extends Curve {
|
|
|
14
14
|
protected childrenBBox(): BBox;
|
|
15
15
|
protected lineWidthCoefficient(): number;
|
|
16
16
|
protected processSubpath(path: Path2D, startPoint: Vector2 | null, endPoint: Vector2 | null): void;
|
|
17
|
-
protected tweenData(newPath: SignalValue<string>, time: number, timingFunction: TimingFunction): Generator<void | import("@twick/core").ThreadGenerator |
|
|
17
|
+
protected tweenData(newPath: SignalValue<string>, time: number, timingFunction: TimingFunction): Generator<void | Promise<any> | import("@twick/core").ThreadGenerator | import("@twick/core").Promisable<any>, void, any>;
|
|
18
18
|
drawOverlay(context: CanvasRenderingContext2D, matrix: DOMMatrix): void;
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=Path.d.ts.map
|
package/lib/components/SVG.d.ts
CHANGED
|
@@ -98,7 +98,7 @@ export declare class SVG extends Shape {
|
|
|
98
98
|
* @param timing - The timing function.
|
|
99
99
|
*/
|
|
100
100
|
protected generateTransformer(from: Node, to: Node, duration: number, timing: TimingFunction): Generator<ThreadGenerator>;
|
|
101
|
-
protected tweenSvg(value: SignalValue<string>, time: number, timingFunction: TimingFunction): Generator<void |
|
|
101
|
+
protected tweenSvg(value: SignalValue<string>, time: number, timingFunction: TimingFunction): Generator<void | Promise<any> | ThreadGenerator | import("@twick/core").Promisable<any>, void, any>;
|
|
102
102
|
private wrapperScale;
|
|
103
103
|
/**
|
|
104
104
|
* Get the current `SVGDocument`.
|
|
@@ -35,6 +35,6 @@ export declare abstract class Shape extends Layout {
|
|
|
35
35
|
protected getPath(): Path2D;
|
|
36
36
|
protected getRipplePath(): Path2D;
|
|
37
37
|
protected drawRipple(context: CanvasRenderingContext2D): void;
|
|
38
|
-
ripple(duration?: number): Generator<void | import("@twick/core").ThreadGenerator |
|
|
38
|
+
ripple(duration?: number): Generator<void | Promise<any> | import("@twick/core").ThreadGenerator | import("@twick/core").Promisable<any>, void, any>;
|
|
39
39
|
}
|
|
40
40
|
//# sourceMappingURL=Shape.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Video.d.ts","sourceRoot":"","sources":["../../src/lib/components/Video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAI9E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAI/C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Video.d.ts","sourceRoot":"","sources":["../../src/lib/components/Video.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAC,MAAM,aAAa,CAAC;AAI9E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAI/C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAG9B,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B;;OAEG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;CACzD;AAED,qBACa,KAAM,SAAQ,KAAK;IAC9B;;;;;;OAMG;IACH,SAEwB,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1D;;;;;;;;OAQG;IACH,SAEwB,SAAS,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE/D;;;;;;;OAOG;IACH,SAEwB,OAAO,EAAE,YAAY,CAC3C,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,EAChC,IAAI,CACL,CAAC;IAEK,gBAAgB,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CACvD;IACZ,OAAO,CAAC,mBAAmB,CAAkB;IAE7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAwC;IAEpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAEb;gBAEV,KAAK,EAAE,UAAU;cAIjB,WAAW,IAAI,iBAAiB,CAAC,aAAa,CAAC;IAalE,SAAS,CAAC,YAAY,IAAI,gBAAgB;IAI1C,SAAS,CAAC,WAAW,IAAI,gBAAgB;IAIzC,SAAS,CAAC,eAAe,IAAI,gBAAgB;IAK7C,OAAO,CAAC,KAAK;IAoFb,SAAS,CAAC,WAAW,IAAI,gBAAgB;IAoBzC,SAAS,CAAC,eAAe,IAAI,gBAAgB;IAgC7C,SAAS,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAAQ;cAE/B,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,CAAC;cAcjD,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC;cA8BzC,YAAY;cA4CH,IAAI,CAAC,OAAO,EAAE,wBAAwB;cAwB5C,SAAS;IAQZ,MAAM;IAMtB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,cAAc;IAmEd,eAAe;CAcxB"}
|