diff options
Diffstat (limited to 'src/multimedia/recording')
-rw-r--r-- | src/multimedia/recording/qmediacapturesession.cpp | 20 | ||||
-rw-r--r-- | src/multimedia/recording/qmediacapturesession.h | 5 |
2 files changed, 24 insertions, 1 deletions
diff --git a/src/multimedia/recording/qmediacapturesession.cpp b/src/multimedia/recording/qmediacapturesession.cpp index 82ed9a558..d07db84d2 100644 --- a/src/multimedia/recording/qmediacapturesession.cpp +++ b/src/multimedia/recording/qmediacapturesession.cpp @@ -49,6 +49,7 @@ #include "qplatformmediaintegration_p.h" #include "qplatformmediacapture_p.h" #include "qaudioinput.h" +#include "qaudiooutput.h" QT_BEGIN_NAMESPACE @@ -58,6 +59,7 @@ public: QMediaCaptureSession *q = nullptr; QPlatformMediaCaptureSession *captureSession; QAudioInput *audioInput = nullptr; + QAudioOutput *audioOutput = nullptr; QCamera *camera = nullptr; QCameraImageCapture *imageCapture = nullptr; QMediaEncoder *encoder = nullptr; @@ -158,7 +160,7 @@ void QMediaCaptureSession::setAudioInput(QAudioInput *device) if (d_ptr->audioInput == device) return; d_ptr->audioInput = device; - d_ptr->captureSession->setAudioInput(device->handle()); + d_ptr->captureSession->setAudioInput(device ? device->handle() : nullptr); emit audioInputChanged(); } @@ -281,6 +283,22 @@ QVideoSink *QMediaCaptureSession::videoSink() const return d->videoSink; } +void QMediaCaptureSession::setAudioOutput(QAudioOutput *output) +{ + Q_D(QMediaCaptureSession); + if (d->audioOutput == output) + return; + d->audioOutput = output; + d->captureSession->setAudioOutput(output ? output->handle() : nullptr); + emit audioOutputChanged(); +} + +QAudioOutput *QMediaCaptureSession::audioOutput() const +{ + Q_D(const QMediaCaptureSession); + return d->audioOutput; +} + /*! \internal */ diff --git a/src/multimedia/recording/qmediacapturesession.h b/src/multimedia/recording/qmediacapturesession.h index ce5555a93..ee096a147 100644 --- a/src/multimedia/recording/qmediacapturesession.h +++ b/src/multimedia/recording/qmediacapturesession.h @@ -47,6 +47,7 @@ QT_BEGIN_NAMESPACE class QCamera; class QAudioInput; +class QAudioOutput; class QCameraDevice; class QCameraImageCapture; // ### rename to QMediaImageCapture class QMediaEncoder; @@ -86,6 +87,9 @@ public: void setVideoSink(QVideoSink *preview); QVideoSink *videoSink() const; + void setAudioOutput(QAudioOutput *output); + QAudioOutput *audioOutput() const; + QPlatformMediaCaptureSession *platformSession() const; Q_SIGNALS: @@ -94,6 +98,7 @@ Q_SIGNALS: void imageCaptureChanged(); void encoderChanged(); void videoOutputChanged(); + void audioOutputChanged(); private: QMediaCaptureSessionPrivate *d_ptr; |