| /**************************************************************************** |
| ** |
| ** Copyright (C) 2015 The Qt Company Ltd. |
| ** Contact: http://www.qt.io/licensing/ |
| ** |
| ** This file is part of the documentation of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:FDL$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/contact-us. |
| ** |
| ** GNU Free Documentation License Usage |
| ** Alternatively, this file may be used under the terms of the GNU Free |
| ** Documentation License version 1.3 as published by the Free Software |
| ** Foundation and appearing in the file included in the packaging of |
| ** this file. Please review the following information to ensure |
| ** the GNU Free Documentation License version 1.3 requirements |
| ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| |
| |
| /*! |
| |
| \example multimediawidgets/camera |
| \title Camera Example |
| \ingroup multimedia_examples |
| \ingroup camera_examples |
| \brief The Camera Example shows how to use the API to capture a still image |
| or video. |
| |
| 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 |
| |
| A Camera class is created that will act as our Camera. 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 contains an instance of \l {QCamera}, the API class interface to |
| the hardware. It also has an instance of \l {QCameraImageCapture} to take still images |
| and an instance of \l {QMediaRecorder} to record video. It also contains the user |
| interface object. |
| |
| The Camera constructor does some basic initialization. The camera object is |
| set to '0', the user interface is initialized and UI signal are connected to |
| slots that react to the triggering event. However, most of the work is done when |
| the \e{setCamera()} function is called, passing in a \l {QByteArray}. |
| |
| \e{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 {QCameraImageCapture} and \l {QMediaRecorder} objects mentioned above. The still |
| and video recording visual tabs are enabled and finally the |
| \l {QCamera::start()}{start()} function of the \l{QCamera} object is called. |
| |
| Now that the camera is ready for user commands it waits for a suitable event. |
| Such an event will be the key press of either the \l {Qt::Key_CameraFocus} or |
| \l {Qt::Key_Camera} buttons on the application window. Camera focus will |
| simply display the viewfinder and lock the camera settings. Key_Camera will |
| either call \e{takeImage()} if the \l {QCamera::captureMode()}{captureMode()} |
| is QCamera::CaptureStillImage, or if the capture mode is for video then one |
| of two actions will occur. If the recording state shows that we are currently |
| recording then the \e{stop()} function is called resulting in a call to |
| \l {QCamera::stop()}, whereas if we are not recording then a video recording |
| is started with a call to \l {QMediaRecorder::record()}. |
| |
| \image camera-example.png |
| |
| */ |