Multi-Camera
Using multiple Camera Devices in a single Camera Session
A CameraSession allows attaching multiple connections to stream from multiple CameraDevices at the same time - if the system supports it.
Creating a Multi-Camera Session
To create a multi-camera CameraSession, use createCameraSession(true). Make sure supportsMultiCamSessions is true:
if (HybridCameraFactory.supportsMultiCamSessions) {
const session = await HybridCameraFactory.createCameraSession(true)
}Using multiple Connections
With a multi-cam CameraSession, you can now attach multiple CameraSessionConnections - for example to stream and capture from the Front- and Back-Camera at the same time, attach both devices:
const session = ...
const frontDevice = useCameraDevice('front')
const backDevice = useCameraDevice('back')
const frontPreview = usePreviewOutput()
const backPreview = usePreviewOutput()
const [frontController, backController] = await session.configure([
// Front Camera
{
input: frontDevice,
outputs: [
{ output: frontPreviewOutput, mirrorMode: 'on' },
{ output: frontPhotoOutput, mirrorMode: 'off' },
],
config: {}
},
// Back Camera
{
input: backDevice,
outputs: [
{ output: backPreviewOutput, mirrorMode: 'off' },
{ output: backPhotoOutput, mirrorMode: 'off' },
],
config: {}
}
])
await session.start()Then, ensure you display both frontPreview and backPreview in separate <NativePreviewView /> views.
Each returned CameraController correlates to the connection at that index.