← Back to studio
# Hardware and phone setup

## DJI Pocket 3

Connect the camera with a data-capable USB cable and choose **Webcam** on the device. Select its exposed UVC camera in the studio. The app uses standard browser device APIs; there is no proprietary DJI integration.

A wireless microphone paired with the Pocket 3 belongs to the camera's audio routing. Verify whether the OS exposes that audio as an input and select it. Otherwise use a separate computer microphone. Camera output resolution, tracking, and simultaneous internal recording depend on the camera/firmware; test your exact setup rather than assuming 4K webcam output.

## BOYA PM700

Connect it to the computer via a compatible USB data cable. Choose it as the recording microphone and set it as the **operating system's default sound input** for Web Speech captions. The camera/microphone dropdown controls getUserMedia; Web Speech commonly listens to the system default input independently.

## Question audio

Wear headphones. Edge-generated MP3 playback is digitally routed into the recording alongside the microphone. The microphone is never routed to speaker output, preventing a direct feedback loop. A speaker can still acoustically leak TTS audio back into the microphone.

The browser speechSynthesis fallback cannot be tapped with createMediaElementSource. When fallback is used, the UI warns that the question voice will not be present as a digital source. It remains visible in the transcript and question captions.

## Phones and HTTPS

Run `./start.sh --https --port 8443` on your computer. Find its local IP in network settings and open `https://<computer-IP>:8443` on a phone on the same trusted Wi-Fi network. Allow local-network access in the computer firewall if needed.

OpenSSL generates a local certificate under `.certificates/`. Self-signed certificates are untrusted by default. The user must review and explicitly configure certificate trust on their device; browsers may refuse camera/microphone access until trust is established. Merely dismissing a warning may not be sufficient. Never share the private key. For reliable multi-device development, a locally trusted certificate with the correct LAN IP as a subject alternative name is preferable.

The app is a local development server without authentication. HTTPS does not make public internet exposure appropriate. Safari support varies; test WebM recording, Web Speech recognition, and background effects on the target phone before a real interview. Keep the browser foreground and prevent screen sleep during filming.

Restart the server after backend or environment changes. Refresh only after saving an interview.