QMediaCaptureSession Class

The QMediaCaptureSession class allows capturing of audio and video content. More...

Header: #include <QMediaCaptureSession>
CMake: find_package(Qt6 COMPONENTS Multimedia REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
Instantiated By: CaptureSession
Inherits: QObject

Properties

Public Functions

QMediaCaptureSession(QObject *parent = nullptr)
virtual ~QMediaCaptureSession()
QAudioInput *audioInput() const
QAudioOutput *audioOutput() const
QCamera *camera() const
QImageCapture *imageCapture()
QMediaRecorder *recorder()
void setAudioInput(QAudioInput *input)
void setAudioOutput(QAudioOutput *output)
void setCamera(QCamera *camera)
void setImageCapture(QImageCapture *imageCapture)
void setRecorder(QMediaRecorder *recorder)
void setVideoOutput(QObject *output)
void setVideoSink(QVideoSink *sink)
QObject *videoOutput() const

Signals

Detailed Description

The QMediaCaptureSession is the central class that manages capturing of media on the local device.

You can connect a camera and a microphone to QMediaCaptureSession using setCamera() and setAudioInput(). A preview of the captured media can be seen by setting a QVideoSink of QVideoWidget using setVideoOutput() and heard by routing the audio to an output device using setAudioOutput().

You can capture still images from a camera by setting a QImageCapture object on the capture session, and record audio/video using a QMediaRecorder.

See also QCamera, QAudioDevice, QMediaRecorder, QImageCapture, and QMediaRecorder.

Property Documentation

camera : QCamera*

This property holds the camera used to capture video.

Record video or take images by adding a camera to the capture session using this property,

Access functions:

QCamera *camera() const
void setCamera(QCamera *camera)

Notifier signal:

void cameraChanged()

imageCapture : QImageCapture*

This property holds the object used to capture still images.

Add a QImageCapture object to the capture session to enable capturing of still images from the camera.

Access functions:

QImageCapture *imageCapture()
void setImageCapture(QImageCapture *imageCapture)

Notifier signal:

void imageCaptureChanged()

recorder : QMediaRecorder*

This property holds the recorder object used to capture audio/video.

Add a QMediaRecorder object to the capture session to enable recording of audio and/or video from the capture session.

Access functions:

QMediaRecorder *recorder()
void setRecorder(QMediaRecorder *recorder)

Notifier signal:

void recorderChanged()

Member Function Documentation

QMediaCaptureSession::QMediaCaptureSession(QObject *parent = nullptr)

Creates a session for media capture from the parent object.

[virtual] QMediaCaptureSession::~QMediaCaptureSession()

Destroys the session.

QAudioInput *QMediaCaptureSession::audioInput() const

Returns the device that is being used to capture audio.

Note: Getter function for property audioInput.

See also setAudioInput().

void QMediaCaptureSession::setAudioInput(QAudioInput *input)

Sets the audio input device to input. If setting it to an empty QAudioDevice the capture session will use the default input as defined by the operating system.

Note: Setter function for property audioInput.

See also audioInput().

void QMediaCaptureSession::setAudioOutput(QAudioOutput *output)

Sets the audio output device to output.

Note: Setter function for property audioOutput.

See also audioOutput().

void QMediaCaptureSession::setVideoOutput(QObject *output)

Sets a QObject, (output), to a video preview for the capture session.

A QObject based preview is expected to have an invokable videoSink() method that returns a QVideoSink.

The previously set preview is detached.

Note: Setter function for property videoOutput.

See also videoOutput().

void QMediaCaptureSession::setVideoSink(QVideoSink *sink)

Sets a QVideoSink, (sink), to a video preview for the capture session.

A QObject based preview is expected to have an invokable videoSink() method that returns a QVideoSink.

The previously set preview is detached.

© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.