- Qt 6.8
- Qt Multimedia
- C++ Classes
- QtMultimedia
- QMediaCaptureSession
- Qt 6.8.0 Reference Documentation

# 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

- List of all members, including inherited members

## Properties

audioInput : QAudioInput* audioOutput : QAudioOutput* camera : QCamera* imageCapture : QImageCapture* | recorder : QMediaRecorder* `(since 6.5)` screenCapture : QScreenCapture* videoOutput : QObject* `(since 6.6)` windowCapture : QWindowCapture*

## 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

void | audioInputChanged()
void | audioOutputChanged()
void | cameraChanged()
void | imageCaptureChanged()
void | recorderChanged()
void | screenCaptureChanged()
void | videoOutputChanged()
void | windowCaptureChanged()

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