Skip to content

Commit 7035b03

Browse files
committed
fix: combine tracks
1 parent 6dad03a commit 7035b03

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

server/app.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def __init__(self, track: MediaStreamTrack):
5959

6060
async def recv(self):
6161
frame = await self.track.recv()
62-
return await self.pipeline(frame)
62+
return frame
6363

6464
# async def recv(self):
6565
# frame = await self.source.recv()

ui/src/components/webcam.tsx

+11-4
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,21 @@ function StreamCanvas({
1818
const videoRef = useRef<HTMLVideoElement | null>(null);
1919

2020
useEffect(() => {
21+
if (!stream) return;
22+
2123
const canvas = canvasRef.current!;
22-
const outputStream = canvas.captureStream(30);
23-
onStreamReady(outputStream);
24+
const videoOnlyStream = canvas.captureStream(frameRate);
25+
const audioTracks = stream.getAudioTracks();
26+
const combinedStream = new MediaStream([
27+
...videoOnlyStream.getVideoTracks(),
28+
...audioTracks,
29+
]);
30+
onStreamReady(combinedStream);
2431

2532
return () => {
26-
outputStream.getTracks().forEach((track) => track.stop());
33+
combinedStream.getTracks().forEach((track) => track.stop());
2734
};
28-
}, [onStreamReady, frameRate]);
35+
}, [stream, frameRate, onStreamReady]);
2936

3037
// Set up canvas animation loop
3138
useEffect(() => {

0 commit comments

Comments
 (0)