diff options
Diffstat (limited to 'examples/multimedia/camera/doc/src/camera.qdoc')
-rw-r--r-- | examples/multimedia/camera/doc/src/camera.qdoc | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/examples/multimedia/camera/doc/src/camera.qdoc b/examples/multimedia/camera/doc/src/camera.qdoc new file mode 100644 index 000000000..ae6877129 --- /dev/null +++ b/examples/multimedia/camera/doc/src/camera.qdoc @@ -0,0 +1,92 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only +/*! + +\example camera +\title Camera Example +\ingroup multimedia_examples +\ingroup video_examples +\ingroup camera_examples +\examplecategory {Multimedia} +\meta {tag} {widgets} +\brief Shows how to capture a still image or record video. + +\image camera-example.png + +The Camera Example demonstrates how you can use \l{Qt Multimedia} to implement +some basic Camera functionality to take still images and record video clips +with audio. + +\include examples-run.qdocinc + +The example implements a \c Camera class that acts as our camera interface. It +has a user interface, control functions, setting values and a means of defining +the location where the image or video clip is to be saved. It will also store +the image and video settings. + +The Camera class uses: +\list + \li An instance of \l {QCamera}, the API class interface to the hardware. + \li An instance of \l {QImageCapture} to take still images. + \li An instance of \l {QMediaRecorder} to record video. It also contains + the user interface object. +\endlist + +\section1 The Camera constructor + +The Camera constructor does some basic initialization of the user interface +including disabling all buttons by default. + +\quotefromfile camera/camera.cpp +\skipto Camera::Camera() +\printuntil ui->metaDataButton->setEnabled(false); + +It seeks permissions for input device access: + +\skipto #if QT_CONFIG(permissions) +\printuntil #endif + +Inputs are assigned: +\printuntil updateCameras() + + UI signals are connected to slots that react to the triggering event: +\printuntil setCamera(QMediaDevices::defaultVideoInput()); + +However, most of the work is done when the \e{setCamera()} function is called, +passing in a \l QCameraDevice. + +\section1 setCamera() + +\c{setCamera()} sets up various connections between the user interface and the +functionality of the Camera class using signals and slots. It also instantiates +and initializes the \l {QCamera}, \l {QImageCapture}, and \l {QMediaRecorder} +objects. + +\skipto void Camera::setCamera(const QCameraDevice &cameraDevice) +\printto m_captureSession.setVideoOutput(ui->viewfinder); + +The still and video recording visual tabs are enabled: + +\printuntil updateCaptureMode(); + +Finally the \l {QCamera::start}{start()} function of the \l{QCamera} +object is called. + +\printuntil m_camera->start(); + +\section1 Triggering capturing + +Now that the camera is ready for user commands it waits for a suitable event. +Such an event can be a key press of either the \l {Qt::Key_CameraFocus} or +\l {Qt::Key_Camera} buttons on the application window. + +Key_CameraFocus will simply display the preview and lock the camera settings. +\printto case Qt::Key_Camera: + +\c Key_Camera will either call \e{takeImage()} if doing an image capture, or call +\c record() or \c stop() (if already recording) on the QMediaRecorder instance +when recording video. + +\printuntil break; + +*/ |