Skip to content

Commit da4fc4f

Browse files
fix: handle player resize correctly (#300)
1 parent 8d7a728 commit da4fc4f

File tree

3 files changed

+14
-11
lines changed

3 files changed

+14
-11
lines changed

packages/2d/src/lib/scenes/Scene2D.ts

-1
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,6 @@ export class Scene2D extends GeneratorScene<View2D> implements Inspectable {
220220

221221
for (const media of mediaNodes) {
222222
media.setVolume(media.getVolume() * volumeScale);
223-
console.log(media.key);
224223
}
225224
}
226225

packages/player-react/src/index.tsx

+9-8
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ interface RevideoPlayerProps {
1414
height?: number;
1515
quality?: number;
1616
fps?: number;
17+
volume?: number;
1718
}
1819

1920
declare global {
@@ -140,19 +141,18 @@ export function Player({
140141
const handlePlayerResize = useCallback(
141142
(entries: ResizeObserverEntry[]) => {
142143
const [firstEntry] = entries;
143-
if (!firstEntry || !wrapperRef.current) {
144+
if (!firstEntry || !wrapperRef.current || !lastRect.current) {
144145
return;
145146
}
146147

147148
const newRect = firstEntry.contentRect;
148-
const sameWidth = newRect.width === lastRect.current.width;
149-
const sameHeight = newRect.height === lastRect.current.height;
150-
if (lastRect.current && sameWidth && sameHeight) {
151-
return;
149+
if (
150+
newRect.width !== lastRect.current.width ||
151+
newRect.height !== lastRect.current.height
152+
) {
153+
lastRect.current = newRect;
154+
onPlayerResize(newRect);
152155
}
153-
154-
lastRect.current = newRect;
155-
onPlayerResize(newRect);
156156
},
157157
[onPlayerResize],
158158
);
@@ -234,6 +234,7 @@ export function Player({
234234
height={height}
235235
quality={quality}
236236
fps={fps}
237+
volume={volumeState}
237238
/>
238239
<div
239240
className={`p-absolute p-bottom-0 p-w-full p-transition-opacity p-duration-200 ${

packages/player-react/src/internal.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class RevideoPlayer extends HTMLElement {
4848
'quality',
4949
'width',
5050
'height',
51+
'volume',
5152
];
5253
}
5354

@@ -99,7 +100,7 @@ class RevideoPlayer extends HTMLElement {
99100
private duration: number = 0; // in frames
100101
private looping = true;
101102
private volume = 1;
102-
private volumeChangeRequested = false;
103+
private volumeChangeRequested = true;
103104

104105
public constructor() {
105106
super();
@@ -110,7 +111,6 @@ class RevideoPlayer extends HTMLElement {
110111
this.canvas = this.stage.finalBuffer;
111112
this.canvas.classList.add('canvas');
112113
this.root.prepend(this.canvas);
113-
114114
this.setState(State.Initial);
115115
}
116116

@@ -205,6 +205,9 @@ class RevideoPlayer extends HTMLElement {
205205
case 'height':
206206
this.updateSettings();
207207
break;
208+
case 'volume':
209+
this.volume = newValue;
210+
this.volumeChangeRequested = true;
208211
}
209212
}
210213

0 commit comments

Comments
 (0)