CameraPreview

A view that displays a live camera feed from a connected device. CameraPreview shows a real-time video preview, useful for camera-enabled applications, barcode scanning, or video conferencing interfaces.

Constructor

nib.CameraPreview(
    device_id=None,
    **modifiers,
)

Parameters

Parameter Type Default Description
device_id str None Camera device ID. When None, the system default camera is used. Obtain device IDs from app.camera.list_devices().
**modifiers Common view modifiers: width, height, corner_radius, opacity, padding, etc.

Mutable Properties

Property Type Description
device_id str Get or set the camera device ID.

Methods

Method Description
start() Start or resume the capture session.
stop() Stop the capture session and release the camera.

Examples

Default camera preview

import nib


def main(app: nib.App):
    app.build(
        nib.CameraPreview(
            width=320,
            height=240,
            corner_radius=12,
            padding=16,
        )
    )


nib.run(main)

Camera preview with device selection

import nib


def main(app: nib.App):
    preview = nib.CameraPreview(
        width=320,
        height=240,
        corner_radius=8,
    )

    devices = app.camera.list_devices()
    options = [(d.id, d.name) for d in devices]

    app.build(
        nib.VStack(
            controls=[
                nib.Picker(
                    "Camera",
                    selection=options[0][0] if options else "",
                    options=options,
                    on_change=lambda device_id: setattr(
                        preview, "device_id", device_id
                    ),
                ),
                preview,
            ],
            spacing=12,
            padding=16,
        )
    )


nib.run(main)