QMediaCaptureSession Class

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

Header: #include <QMediaCaptureSession>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
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()
QScreenCapture *screenCapture()
void setAudioInput(QAudioInput *input)
void setAudioOutput(QAudioOutput *output)
void setCamera(QCamera *camera)
void setImageCapture(QImageCapture *imageCapture)
void setRecorder(QMediaRecorder *recorder)
void setScreenCapture(QScreenCapture *screenCapture)
void setVideoOutput(QObject *output)
void setVideoSink(QVideoSink *sink)
void setWindowCapture(QWindowCapture *windowCapture)
QObject *videoOutput() const
QVideoSink *videoSink() const
QWindowCapture *windowCapture()

Signals

Detailed Description

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

You can connect a video input to QMediaCaptureSession using setCamera(), setScreenCapture() or setWindowCapture(). A preview of the captured media can be seen by setting a QVideoWidget or QGraphicsVideoItem using setVideoOutput().

You can connect a microphone to QMediaCaptureSession using setAudioInput(). The captured sound can be 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, QScreenCapture, QWindowCapture, QMediaRecorder, and QGraphicsVideoItem.

Property Documentation

audioInput : QAudioInput*

Returns the device that is being used to capture audio.

Access functions:

QAudioInput *audioInput() const
void setAudioInput(QAudioInput *input)

Notifier signal:

void audioInputChanged()

audioOutput : QAudioOutput*

Returns the audio output for the session.

Access functions:

QAudioOutput *audioOutput() const
void setAudioOutput(QAudioOutput *output)

Notifier signal:

void audioOutputChanged()

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()

[since 6.5] screenCapture : QScreenCapture*

This property holds the object used to capture a screen.

Record a screen by adding a screen capture object to the capture session using this property.

This property was introduced in Qt 6.5.

Access functions:

QScreenCapture *screenCapture()
void setScreenCapture(QScreenCapture *screenCapture)

Notifier signal:

void screenCaptureChanged()

videoOutput : QObject*

Returns the video output for the session.

Access functions:

QObject *videoOutput() const
void setVideoOutput(QObject *output)

Notifier signal:

void videoOutputChanged()

[since 6.6] windowCapture : QWindowCapture*

This property holds the object used to capture a window.

Record a window by adding a window capture objet to the capture session using this property.

This property was introduced in Qt 6.6.

Access functions:

QWindowCapture *windowCapture()
void setWindowCapture(QWindowCapture *windowCapture)

Notifier signal:

void windowCaptureChanged()

Member Function Documentation

[explicit] QMediaCaptureSession::QMediaCaptureSession(QObject *parent = nullptr)

Creates a session for media capture from the parent object.

[virtual noexcept] QMediaCaptureSession::~QMediaCaptureSession()

Destroys the session.

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.

Setting an audio output device enables audio routing from an audio input device.

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.

See also videoSink().

QVideoSink *QMediaCaptureSession::videoSink() const

Returns the QVideoSink for the session.

See also setVideoSink().