Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
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 ()
 
 Q_REVISION (6, 8) void audioBufferInputChanged()
 
void cameraChanged ()
 
void screenCaptureChanged ()
 
void windowCaptureChanged ()
 
 Q_REVISION (6, 8) void videoFrameInputChanged()
 
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)
 \qmltype CaptureSession
 
 ~QMediaCaptureSession ()
 Destroys the session.
 
QAudioInputaudioInput () const
 
void setAudioInput (QAudioInput *input)
 Sets the audio input device to input.
 
QAudioBufferInputaudioBufferInput () const
 
void setAudioBufferInput (QAudioBufferInput *input)
 
QCameracamera () const
 
void setCamera (QCamera *camera)
 
QImageCaptureimageCapture ()
 
void setImageCapture (QImageCapture *imageCapture)
 
QScreenCapturescreenCapture ()
 
void setScreenCapture (QScreenCapture *screenCapture)
 
QWindowCapturewindowCapture ()
 
void setWindowCapture (QWindowCapture *windowCapture)
 
QVideoFrameInputvideoFrameInput () const
 
void setVideoFrameInput (QVideoFrameInput *input)
 
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
 
QAudioBufferInputaudioBufferInput
 The object used to send custom audio buffers to \l QMediaRecorder.
 
QAudioOutputaudioOutput
 \qmlproperty AudioOutput QtMultimedia::CaptureSession::audioOutput
 
QCameracamera
 \qmlproperty Camera QtMultimedia::CaptureSession::camera
 
QScreenCapturescreenCapture
 \qmlproperty ScreenCapture QtMultimedia::CaptureSession::screenCapture
 
QWindowCapturewindowCapture
 \qmlproperty WindowCapture QtMultimedia::CaptureSession::windowCapture
 
QVideoFrameInputvideoFrameInput
 The object used to send custom video frames to \l QMediaRecorder or a video output.
 
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(), setWindowCapture() or setVideoFrameInput(). 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(), or set your custom audio input using setAudioBufferInput(). 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, QVideoFrameInput, QMediaRecorder, QGraphicsVideoItem

Definition at line 26 of file qmediacapturesession.h.

Constructor & Destructor Documentation

◆ QMediaCaptureSession()

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

\qmltype CaptureSession

Since
6.2 \nativetype QMediaCaptureSession

Allows capturing of audio and video content.

\inqmlmodule QtMultimedia

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

See also
Camera, MediaDevices, MediaRecorder, ImageCapture, ScreenCapture, WindowCapture, AudioInput, VideoOutput

Creates a session for media capture from the parent object.

Definition at line 123 of file qmediacapturesession.cpp.

◆ ~QMediaCaptureSession()

QMediaCaptureSession::~QMediaCaptureSession ( )

Destroys the session.

Definition at line 142 of file qmediacapturesession.cpp.

Member Function Documentation

◆ audioBufferInput()

QAudioBufferInput * QMediaCaptureSession::audioBufferInput ( ) const

Definition at line 211 of file qmediacapturesession.cpp.

◆ audioInput()

QAudioInput * QMediaCaptureSession::audioInput ( ) const

Definition at line 169 of file qmediacapturesession.cpp.

◆ audioInputChanged

void QMediaCaptureSession::audioInputChanged ( )
signal

◆ audioOutput()

QAudioOutput * QMediaCaptureSession::audioOutput ( ) const

Definition at line 637 of file qmediacapturesession.cpp.

◆ audioOutputChanged

void QMediaCaptureSession::audioOutputChanged ( )
signal

◆ camera()

QCamera * QMediaCaptureSession::camera ( ) const

Definition at line 261 of file qmediacapturesession.cpp.

◆ cameraChanged

void QMediaCaptureSession::cameraChanged ( )
signal

◆ imageCapture()

QImageCapture * QMediaCaptureSession::imageCapture ( )

◆ imageCaptureChanged

void QMediaCaptureSession::imageCaptureChanged ( )
signal

◆ platformSession()

QPlatformMediaCaptureSession * QMediaCaptureSession::platformSession ( ) const

Definition at line 646 of file qmediacapturesession.cpp.

◆ Q_REVISION [1/2]

QMediaCaptureSession::Q_REVISION ( 6 ,
8  )
signal

◆ Q_REVISION [2/2]

QMediaCaptureSession::Q_REVISION ( 6 ,
8  )
signal

◆ recorder()

QMediaRecorder * QMediaCaptureSession::recorder ( )

◆ recorderChanged

void QMediaCaptureSession::recorderChanged ( )
signal

◆ screenCapture()

QScreenCapture * QMediaCaptureSession::screenCapture ( )

◆ screenCaptureChanged

void QMediaCaptureSession::screenCaptureChanged ( )
signal

◆ setAudioBufferInput()

void QMediaCaptureSession::setAudioBufferInput ( QAudioBufferInput * input)

Definition at line 218 of file qmediacapturesession.cpp.

◆ 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 180 of file qmediacapturesession.cpp.

◆ 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 600 of file qmediacapturesession.cpp.

◆ setCamera()

void QMediaCaptureSession::setCamera ( QCamera * camera)

Definition at line 268 of file qmediacapturesession.cpp.

◆ setImageCapture()

void QMediaCaptureSession::setImageCapture ( QImageCapture * imageCapture)

Definition at line 458 of file qmediacapturesession.cpp.

◆ setRecorder()

void QMediaCaptureSession::setRecorder ( QMediaRecorder * recorder)

Definition at line 506 of file qmediacapturesession.cpp.

◆ setScreenCapture()

void QMediaCaptureSession::setScreenCapture ( QScreenCapture * screenCapture)

Definition at line 320 of file qmediacapturesession.cpp.

◆ setVideoFrameInput()

void QMediaCaptureSession::setVideoFrameInput ( QVideoFrameInput * input)

Definition at line 410 of file qmediacapturesession.cpp.

◆ 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 558 of file qmediacapturesession.cpp.

◆ 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 580 of file qmediacapturesession.cpp.

◆ setWindowCapture()

void QMediaCaptureSession::setWindowCapture ( QWindowCapture * windowCapture)

Definition at line 371 of file qmediacapturesession.cpp.

◆ videoFrameInput()

QVideoFrameInput * QMediaCaptureSession::videoFrameInput ( ) const

Definition at line 404 of file qmediacapturesession.cpp.

◆ videoOutput()

QObject * QMediaCaptureSession::videoOutput ( ) const

Definition at line 545 of file qmediacapturesession.cpp.

◆ videoOutputChanged

void QMediaCaptureSession::videoOutputChanged ( )
signal

◆ videoSink()

QVideoSink * QMediaCaptureSession::videoSink ( ) const

Returns the QVideoSink for the session.

Definition at line 590 of file qmediacapturesession.cpp.

◆ windowCapture()

QWindowCapture * QMediaCaptureSession::windowCapture ( )

◆ windowCaptureChanged

void QMediaCaptureSession::windowCaptureChanged ( )
signal

Friends And Related Symbol Documentation

◆ QPlatformMediaCaptureSession

friend class QPlatformMediaCaptureSession
friend

Definition at line 95 of file qmediacapturesession.h.

Property Documentation

◆ audioBufferInput

QAudioBufferInput * QMediaCaptureSession::audioBufferInput
readwrite

The object used to send custom audio buffers to \l QMediaRecorder.

Since
6.8

Definition at line 30 of file qmediacapturesession.h.

◆ audioInput

QAudioInput * 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 29 of file qmediacapturesession.h.

◆ audioOutput

QAudioOutput * 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 32 of file qmediacapturesession.h.

◆ camera

QCamera * 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 33 of file qmediacapturesession.h.

◆ 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 40 of file qmediacapturesession.h.

◆ 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 41 of file qmediacapturesession.h.

◆ 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 34 of file qmediacapturesession.h.

◆ videoFrameInput

QVideoFrameInput * QMediaCaptureSession::videoFrameInput
readwrite

The object used to send custom video frames to \l QMediaRecorder or a video output.

Since
6.8

Definition at line 38 of file qmediacapturesession.h.

◆ videoOutput

QObject * 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 42 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 36 of file qmediacapturesession.h.


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