Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QMediaCaptureSession Class Reference

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

#include <qmediacapturesession.h>

+ Inheritance diagram for QMediaCaptureSession:
+ Collaboration diagram for QMediaCaptureSession:

Signals

void audioInputChanged ()
 
void cameraChanged ()
 
void screenCaptureChanged ()
 
void windowCaptureChanged ()
 
void imageCaptureChanged ()
 
void recorderChanged ()
 
void videoOutputChanged ()
 
void audioOutputChanged ()
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

 QMediaCaptureSession (QObject *parent=nullptr)
 Creates a session for media capture from the parent object.
 
 ~QMediaCaptureSession ()
 Destroys the session.
 
QAudioInputaudioInput () const
 
void setAudioInput (QAudioInput *input)
 Sets the audio input device to input.
 
QCameracamera () const
 
void setCamera (QCamera *camera)
 
QImageCaptureimageCapture ()
 
void setImageCapture (QImageCapture *imageCapture)
 
QScreenCapturescreenCapture ()
 
void setScreenCapture (QScreenCapture *screenCapture)
 
QWindowCapturewindowCapture ()
 
void setWindowCapture (QWindowCapture *windowCapture)
 
QMediaRecorderrecorder ()
 
void setRecorder (QMediaRecorder *recorder)
 
void setVideoOutput (QObject *output)
 Sets a QObject, (output), to a video preview for the capture session.
 
QObjectvideoOutput () const
 
void setVideoSink (QVideoSink *sink)
 Sets a QVideoSink, (sink), to a video preview for the capture session.
 
QVideoSinkvideoSink () const
 Returns the QVideoSink for the session.
 
void setAudioOutput (QAudioOutput *output)
 Sets the audio output device to {output}.
 
QAudioOutputaudioOutput () const
 
QPlatformMediaCaptureSessionplatformSession () const
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Properties

QAudioInputaudioInput
 \qmlproperty AudioInput QtMultimedia::CaptureSession::audioInput
 
QAudioOutputaudioOutput
 \qmlproperty AudioOutput QtMultimedia::CaptureSession::audioOutput
 
QCameracamera
 \qmlproperty Camera QtMultimedia::CaptureSession::camera
 
QScreenCapturescreenCapture
 \qmlproperty ScreenCapture QtMultimedia::CaptureSession::screenCapture
 
QWindowCapturewindowCapture
 \qmlproperty WindowCapture QtMultimedia::CaptureSession::windowCapture
 
QImageCaptureimageCapture
 \qmlproperty ImageCapture QtMultimedia::CaptureSession::imageCapture
 
QMediaRecorderrecorder
 \qmlproperty MediaRecorder QtMultimedia::CaptureSession::recorder
 
QObjectvideoOutput
 \qmlproperty VideoOutput QtMultimedia::CaptureSession::videoOutput
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Friends

class QPlatformMediaCaptureSession
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

The QMediaCaptureSession class allows capturing of audio and video content.

\inmodule QtMultimedia

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, QGraphicsVideoItem

Definition at line 24 of file qmediacapturesession.h.

Constructor & Destructor Documentation

◆ QMediaCaptureSession()

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

Creates a session for media capture from the parent object.

\qmltype CaptureSession
\since 6.2
\instantiates QMediaCaptureSession
\brief Allows capturing of audio and video content.

\inqmlmodule QtMultimedia
\ingroup multimedia_qml
\ingroup multimedia_audio_qml
\ingroup multimedia_video_qml

This is the central type that manages capturing of media on the local device.

Connect a camera and a microphone to a CaptureSession by assigning Camera
and AudioInput objects to the relevant properties.

Capture a screen by connecting a ScreenCapture object to
the screenCapture property.

Capture a window by connecting a WindowCapture object to
the windowCapture property.

Enable a preview of the captured media by assigning a VideoOutput element to
the videoOutput property.

Route audio to an output device by assigning an AudioOutput object
to the audioOutput property.

Capture still images from a camera by assigning an ImageCapture to the
imageCapture property.

Record audio/video by assigning a MediaRecorder to the recorder property.

\qml CaptureSession { id: captureSession camera: Camera { id: camera } imageCapture: ImageCapture { id: imageCapture }

recorder: MediaRecorder { id: recorder } videoOutput: preview } \endqml

\sa Camera, MediaDevices, MediaRecorder, ImageCapture, ScreenCapture, WindowCapture, AudioInput, VideoOutput

Definition at line 114 of file qmediacapturesession.cpp.

References QMediaCaptureSessionPrivate::captureSession, QPlatformMediaIntegration::instance(), QMediaCaptureSessionPrivate::q, qWarning, and QPlatformMediaCaptureSession::setCaptureSession().

+ Here is the call graph for this function:

◆ ~QMediaCaptureSession()

QMediaCaptureSession::~QMediaCaptureSession ( )

Destroys the session.

Definition at line 131 of file qmediacapturesession.cpp.

References QMediaCaptureSessionPrivate::captureSession, setAudioInput(), setAudioOutput(), setCamera(), setImageCapture(), setRecorder(), setScreenCapture(), QMediaCaptureSessionPrivate::setVideoSink(), and setWindowCapture().

+ Here is the call graph for this function:

Member Function Documentation

◆ audioInput()

QAudioInput * QMediaCaptureSession::audioInput ( ) const

Definition at line 155 of file qmediacapturesession.cpp.

References QMediaCaptureSessionPrivate::audioInput.

◆ audioInputChanged

void QMediaCaptureSession::audioInputChanged ( )
signal

Referenced by setAudioInput().

+ Here is the caller graph for this function:

◆ audioOutput()

QAudioOutput * QMediaCaptureSession::audioOutput ( ) const

Definition at line 523 of file qmediacapturesession.cpp.

References d.

◆ audioOutputChanged

void QMediaCaptureSession::audioOutputChanged ( )
signal

Referenced by setAudioOutput().

+ Here is the caller graph for this function:

◆ camera()

QCamera * QMediaCaptureSession::camera ( ) const

Definition at line 205 of file qmediacapturesession.cpp.

References QMediaCaptureSessionPrivate::camera.

◆ cameraChanged

void QMediaCaptureSession::cameraChanged ( )
signal

Referenced by setCamera().

+ Here is the caller graph for this function:

◆ imageCapture()

QImageCapture * QMediaCaptureSession::imageCapture ( )

◆ imageCaptureChanged

void QMediaCaptureSession::imageCaptureChanged ( )
signal

Referenced by setImageCapture().

+ Here is the caller graph for this function:

◆ platformSession()

QPlatformMediaCaptureSession * QMediaCaptureSession::platformSession ( ) const

◆ recorder()

QMediaRecorder * QMediaCaptureSession::recorder ( )

◆ recorderChanged

void QMediaCaptureSession::recorderChanged ( )
signal

Referenced by setRecorder().

+ Here is the caller graph for this function:

◆ screenCapture()

QScreenCapture * QMediaCaptureSession::screenCapture ( )

◆ screenCaptureChanged

void QMediaCaptureSession::screenCaptureChanged ( )
signal

Referenced by setScreenCapture().

+ Here is the caller graph for this function:

◆ 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.

Definition at line 165 of file qmediacapturesession.cpp.

References QMediaCaptureSessionPrivate::audioInput, audioInputChanged(), QMediaCaptureSessionPrivate::captureSession, emit, setAudioInput(), and QPlatformMediaCaptureSession::setAudioInput().

Referenced by ~QMediaCaptureSession(), and setAudioInput().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setAudioOutput()

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.

Definition at line 488 of file qmediacapturesession.cpp.

References QMediaCaptureSessionPrivate::audioOutput, audioOutputChanged(), QMediaCaptureSessionPrivate::captureSession, emit, output, setAudioOutput(), and QPlatformMediaCaptureSession::setAudioOutput().

Referenced by ~QMediaCaptureSession(), and setAudioOutput().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setCamera()

void QMediaCaptureSession::setCamera ( QCamera * camera)

Definition at line 210 of file qmediacapturesession.cpp.

References camera, QMediaCaptureSessionPrivate::camera, cameraChanged(), QCamera::captureSession(), QMediaCaptureSessionPrivate::captureSession, emit, setCamera(), and QPlatformMediaCaptureSession::setCamera().

Referenced by ~QMediaCaptureSession(), camera_blah(), overview_movie(), overview_still(), overview_surface(), overview_viewfinder(), and setCamera().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setImageCapture()

void QMediaCaptureSession::setImageCapture ( QImageCapture * imageCapture)

Definition at line 350 of file qmediacapturesession.cpp.

References QImageCapture::captureSession(), QMediaCaptureSessionPrivate::captureSession, emit, imageCapture, QMediaCaptureSessionPrivate::imageCapture, imageCaptureChanged(), setImageCapture(), and QPlatformMediaCaptureSession::setImageCapture().

Referenced by QImageCapture::~QImageCapture(), ~QMediaCaptureSession(), camera_blah(), overview_still(), and setImageCapture().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setRecorder()

void QMediaCaptureSession::setRecorder ( QMediaRecorder * recorder)

Definition at line 395 of file qmediacapturesession.cpp.

References QMediaCaptureSessionPrivate::captureSession, QMediaRecorder::captureSession(), emit, QMediaRecorder::platformRecoder(), recorder, QMediaCaptureSessionPrivate::recorder, recorderChanged(), QPlatformMediaCaptureSession::setMediaRecorder(), and setRecorder().

Referenced by ~QMediaCaptureSession(), QMediaRecorder::~QMediaRecorder(), overview_movie(), and setRecorder().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setScreenCapture()

void QMediaCaptureSession::setScreenCapture ( QScreenCapture * screenCapture)

Definition at line 258 of file qmediacapturesession.cpp.

References QMediaCaptureSessionPrivate::captureSession, QScreenCapture::captureSession(), emit, screenCapture, QMediaCaptureSessionPrivate::screenCapture, screenCaptureChanged(), QPlatformMediaCaptureSession::setScreenCapture(), and setScreenCapture().

Referenced by ~QMediaCaptureSession(), and setScreenCapture().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setVideoOutput()

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.

Definition at line 446 of file qmediacapturesession.cpp.

References d, mo, output, and Q_RETURN_ARG.

Referenced by camera_blah(), overview_surface(), and overview_viewfinder().

+ Here is the caller graph for this function:

◆ setVideoSink()

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.

Definition at line 468 of file qmediacapturesession.cpp.

References d.

◆ setWindowCapture()

void QMediaCaptureSession::setWindowCapture ( QWindowCapture * windowCapture)

Definition at line 305 of file qmediacapturesession.cpp.

References QMediaCaptureSessionPrivate::captureSession, QWindowCapture::captureSession(), emit, QPlatformMediaCaptureSession::setWindowCapture(), setWindowCapture(), windowCapture, QMediaCaptureSessionPrivate::windowCapture, and windowCaptureChanged().

Referenced by ~QMediaCaptureSession(), and setWindowCapture().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ videoOutput()

QObject * QMediaCaptureSession::videoOutput ( ) const

Definition at line 433 of file qmediacapturesession.cpp.

References d.

◆ videoOutputChanged

void QMediaCaptureSession::videoOutputChanged ( )
signal

◆ videoSink()

QVideoSink * QMediaCaptureSession::videoSink ( ) const

Returns the QVideoSink for the session.

Definition at line 478 of file qmediacapturesession.cpp.

References d.

◆ windowCapture()

QWindowCapture * QMediaCaptureSession::windowCapture ( )

◆ windowCaptureChanged

void QMediaCaptureSession::windowCaptureChanged ( )
signal

Referenced by setWindowCapture().

+ Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ QPlatformMediaCaptureSession

friend class QPlatformMediaCaptureSession
friend

Definition at line 81 of file qmediacapturesession.h.

Property Documentation

◆ audioInput

QMediaCaptureSession::audioInput
readwrite

\qmlproperty AudioInput QtMultimedia::CaptureSession::audioInput

This property holds the audio input that is being used to capture audio.

Returns the device that is being used to capture audio.

Definition at line 27 of file qmediacapturesession.h.

◆ audioOutput

QMediaCaptureSession::audioOutput
readwrite

\qmlproperty AudioOutput QtMultimedia::CaptureSession::audioOutput

The audio output device for the capture session.

Add an AudioOutput device to the capture session to enable audio routing from an AudioInput device.

Returns the audio output for the session.

Definition at line 28 of file qmediacapturesession.h.

◆ camera

QMediaCaptureSession::camera
readwrite

\qmlproperty Camera QtMultimedia::CaptureSession::camera

The camera used to capture video.

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

The camera used to capture video.

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

Definition at line 29 of file qmediacapturesession.h.

Referenced by QImageCapture::isReadyForCapture(), and setCamera().

◆ imageCapture

QImageCapture * QMediaCaptureSession::imageCapture
readwrite

\qmlproperty ImageCapture QtMultimedia::CaptureSession::imageCapture

The object used to capture still images.

Add an ImageCapture interface to the capture session to enable capturing of still images from the camera.

the object used to capture still images.

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

Definition at line 34 of file qmediacapturesession.h.

Referenced by setImageCapture().

◆ recorder

QMediaRecorder * QMediaCaptureSession::recorder
readwrite

\qmlproperty MediaRecorder QtMultimedia::CaptureSession::recorder

The recorder object used to capture audio/video.

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

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.

Definition at line 35 of file qmediacapturesession.h.

Referenced by setRecorder().

◆ screenCapture

QScreenCapture * QMediaCaptureSession::screenCapture
readwrite

\qmlproperty ScreenCapture QtMultimedia::CaptureSession::screenCapture

Since
6.5

The object used to capture a screen.

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

Since
6.5

The object used to capture a screen.

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

Definition at line 30 of file qmediacapturesession.h.

Referenced by setScreenCapture().

◆ videoOutput

QMediaCaptureSession::videoOutput
readwrite

\qmlproperty VideoOutput QtMultimedia::CaptureSession::videoOutput

The VideoOutput that is the video preview for the capture session.

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

The previously set preview is detached.

Returns the video output for the session.

Definition at line 36 of file qmediacapturesession.h.

◆ windowCapture

QWindowCapture * QMediaCaptureSession::windowCapture
readwrite

\qmlproperty WindowCapture QtMultimedia::CaptureSession::windowCapture

Since
6.6

The object used to capture a window.

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

Since
6.6

The object used to capture a window.

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

Definition at line 32 of file qmediacapturesession.h.

Referenced by setWindowCapture().


The documentation for this class was generated from the following files: