summaryrefslogtreecommitdiffstats
path: root/src/multimedia/recording/qmediacapturesession.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/recording/qmediacapturesession.cpp')
-rw-r--r--src/multimedia/recording/qmediacapturesession.cpp20
1 files changed, 19 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
*/