Add a live camera preview during the media preflight
Los mantenedores suelen responder en 1 día
@ChenYingHan1121 ya está trabajando en esto.
Desde el 21/10/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Problem
During the media preflight ("Check your setup"), candidates can verify whether their camera is working, but they cannot see their own camera feed.
This makes it difficult to check camera framing, face position, and lighting before starting an interview.
A live camera preview, similar to the pre-join screen in Google Meet, would help candidates adjust their camera setup before entering the interview.
Proposed Improvement
Add a live camera preview to the Camera section of the media preflight.
The preview should:
- Display the candidate's camera feed after camera access is granted.
- Use a mirrored view to make adjusting camera position more intuitive.
- Reuse the existing camera track without requesting a second camera stream.
- Hide or clear the preview when the camera is unavailable, disabled, or skipped.
- Preserve the existing face-presence detection behavior.
- Be visible only during the media preflight, not during the interview itself.
Technical Investigation
The existing implementation already obtains and uses the camera stream for face-presence detection.
In web/face-check.js, createFaceCheck() attaches the active camera track to a hidden video element:
video.srcObject = new MediaStream([trackOf()]);
await video.play?.().catch(() => {});
In web/interview.html, the video element is:
<video
id="camera-integrity-video"
class="hidden-media"
muted
playsinline
></video>
This suggests that the preview could reuse the existing camera track without another getUserMedia() call.
A separate visible video element may help keep the preview independent of the face-presence detection element.
Relationship to Existing Work
Related to #141 and PR #143.
Issue #141 focuses on displaying the candidate's webcam during the interview.
This proposal is specifically for the pre-interview media preflight ("Check your setup"), allowing candidates to adjust their camera framing and lighting before starting.
The preview would be limited to the preflight stage and would reuse the existing camera track without interfering with face-presence detection.
I understand that this is related to the existing webcam preview work, and I would appreciate confirmation that it is appropriate to track separately.
Question
Would this preflight-only camera preview be a useful addition to CodeTrial?
If the proposed scope is acceptable, I would be happy to implement it and add browser regression tests.
- Lenguaje dominante
- Rust
- Estrellas
- 177
- Forks
- 100
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 168
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de sysprog21/codetrial
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Python tests lose every result when the solution returns inf or NaNPosiblemente ocupada @shensyuan la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
sysprog21/codetrial#419 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Allow deselecting a chosen problem card by clicking it againPosiblemente ocupada @woohsin la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
sysprog21/codetrial#392 · 4 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Audio output can be confirmed without playing a test soundPosiblemente ocupada @ChenYingHan1121 la tomó hace 3 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
sysprog21/codetrial#359 · 5 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Add a Copy code button to the final reportPosiblemente ocupada @yansawu la tomó hace 4 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
sysprog21/codetrial#318 · 5 comentarios · 2 reacciones · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de sysprog21/codetrial
Issues similares
-
bug cli p3
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 3 días
-
Telegram and Twitch adapters panic when splitting long messages with multibyte charactersPosiblemente ocupada @RaphaelFakhri la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
spacedriveapp/spacebot#661 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
project-robius/robrix#1177 ·
Los mantenedores suelen responder en 1 día
-
Quadratic time in Query::bind() makes large parameterized queries (multi-row INSERT) very slowAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
ClickHouse/clickhouse-rs#497 ·
Los mantenedores suelen responder en 1 día