Skip to main content
startCamera(properties?) Acquires local camera and microphone access as part of the pre-join flow, without entering a call. Useful for building a “hair check” or lobby screen where participants can preview and configure their devices before joining. Accepts the same DailyCallOptions object as the factory methods. url is not required.
Do not call startCamera() after join(). Use setLocalVideo() or setLocalAudio() to control devices mid-call.
join() calls startCamera() internally — if you don’t need pre-join device access, join() alone is sufficient.

Parameters

properties
DailyCallOptions
Call configuration options. See DailyCallOptions for the full list of available fields.

Return value

Returns a Promise<DailyDeviceInfos> with the active camera, mic, and speaker. See getInputDevices() for the full shape.

Example

const call = Daily.createCallObject();

// Preview devices before joining
await call.startCamera({ url: 'https://your-domain.daily.co/room-name' });

const { local } = call.participants();
const audioTrack = local.tracks.audio.track;
const videoTrack = local.tracks.video.track;

// Later, join the call when ready
await call.join();

See also