summaryrefslogtreecommitdiffstats
path: root/examples/multimediawidgets
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-06-04 15:58:15 +0200
committerLars Knoll <lars.knoll@qt.io>2021-06-11 15:12:28 +0200
commitd5b87ad6554a674aa38a3d301918a49f5baf57a7 (patch)
treea2d28e0f72142a13ca602c1ef927f3a81a15eee7 /examples/multimediawidgets
parent9fd208f11a218d8a8b07fc525258eea3b3596d62 (diff)
Use QAudioInput in QMediaCaptureSession
Convert the audioInput property to use a pointer to a QAudioInput in line with the API changes planned. Not setting up a QAudioInput implies that you do not get any audio. Move the volume and muted properties over to QAudioInput, they should really not be part of the QMediaCaptureSession. Adjust the platform API accordingly and adjust implementations. The Android adaptation is incomplete, but that was the case before as well. This needs some refactoring to properly support setting devices and adjusting volume/muted. Dynamically adjusting to changes of the audio input device is not yet implemented on Windows. Change-Id: I2fb63b9e57908d6dc02130b8d534ef7ac1a1ac85 Reviewed-by: André de la Rocha <andre.rocha@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'examples/multimediawidgets')
-rw-r--r--examples/multimediawidgets/camera/camera.cpp7
-rw-r--r--examples/multimediawidgets/camera/camera.h2
-rw-r--r--examples/multimediawidgets/camera/videosettings.cpp6
3 files changed, 11 insertions, 4 deletions
diff --git a/examples/multimediawidgets/camera/camera.cpp b/examples/multimediawidgets/camera/camera.cpp
index 8e339a6cb..0e8d2b4a3 100644
--- a/examples/multimediawidgets/camera/camera.cpp
+++ b/examples/multimediawidgets/camera/camera.cpp
@@ -60,6 +60,7 @@
#include <QMediaMetaData>
#include <QMediaDevices>
#include <QAudioDevice>
+#include <QAudioInput>
#include <QMessageBox>
#include <QPalette>
@@ -74,6 +75,9 @@ Camera::Camera()
{
ui->setupUi(this);
+ m_audioInput.reset(new QAudioInput);
+ m_captureSession.setAudioInput(m_audioInput.get());
+
//Camera devices:
videoDevicesGroup = new QActionGroup(this);
@@ -110,7 +114,6 @@ void Camera::setCamera(const QCameraDevice &cameraInfo)
connect(ui->exposureCompensation, &QAbstractSlider::valueChanged, this, &Camera::setExposureCompensation);
m_captureSession.setVideoOutput(ui->viewfinder);
- m_captureSession.setAudioInput(QMediaDevices::defaultAudioInput());
updateCameraActive(m_camera->isActive());
updateRecorderState(m_mediaEncoder->state());
@@ -229,7 +232,7 @@ void Camera::stop()
void Camera::setMuted(bool muted)
{
- m_captureSession.setMuted(muted);
+ m_captureSession.audioInput()->setMuted(muted);
}
void Camera::takeImage()
diff --git a/examples/multimediawidgets/camera/camera.h b/examples/multimediawidgets/camera/camera.h
index 95e436744..c30927deb 100644
--- a/examples/multimediawidgets/camera/camera.h
+++ b/examples/multimediawidgets/camera/camera.h
@@ -58,6 +58,7 @@
#include <QMediaMetaData>
#include <QMediaCaptureSession>
#include <QMediaDevices>
+#include <QAudioInput>
#include <QMainWindow>
@@ -133,6 +134,7 @@ private:
QMediaDevices m_devices;
QMediaCaptureSession m_captureSession;
QScopedPointer<QCamera> m_camera;
+ QScopedPointer<QAudioInput> m_audioInput;
QCameraImageCapture *m_imageCapture;
QScopedPointer<QMediaEncoder> m_mediaEncoder;
diff --git a/examples/multimediawidgets/camera/videosettings.cpp b/examples/multimediawidgets/camera/videosettings.cpp
index aafd4b5f3..29764eb9a 100644
--- a/examples/multimediawidgets/camera/videosettings.cpp
+++ b/examples/multimediawidgets/camera/videosettings.cpp
@@ -60,6 +60,7 @@
#include <QMediaCaptureSession>
#include <QCameraDevice>
#include <QCamera>
+#include <QAudioInput>
VideoSettings::VideoSettings(QMediaEncoder *mediaRecorder, QWidget *parent)
: QDialog(parent),
@@ -77,8 +78,9 @@ VideoSettings::VideoSettings(QMediaEncoder *mediaRecorder, QWidget *parent)
}
//sample rate:
- ui->audioSampleRateBox->setRange(mediaRecorder->captureSession()->audioInput().minimumSampleRate(),
- mediaRecorder->captureSession()->audioInput().maximumSampleRate());
+ auto audioDevice = mediaRecorder->captureSession()->audioInput()->device();
+ ui->audioSampleRateBox->setRange(audioDevice.minimumSampleRate(),
+ audioDevice.maximumSampleRate());
//video codecs
ui->videoCodecBox->addItem(tr("Default video codec"), QVariant::fromValue(QMediaFormat::VideoCodec::Unspecified));