summaryrefslogtreecommitdiffstats
path: root/src/multimedia/audio/qaudioinput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/audio/qaudioinput.cpp')
-rw-r--r--src/multimedia/audio/qaudioinput.cpp149
1 files changed, 97 insertions, 52 deletions
diff --git a/src/multimedia/audio/qaudioinput.cpp b/src/multimedia/audio/qaudioinput.cpp
index 431e2a871..6b1c830e3 100644
--- a/src/multimedia/audio/qaudioinput.cpp
+++ b/src/multimedia/audio/qaudioinput.cpp
@@ -44,6 +44,36 @@
#include <private/qplatformmediaintegration_p.h>
/*!
+ \qmltype AudioInput
+ \instantiates QAudioInput
+ \brief An audio input to be used for capturing audio in a capture session.
+
+ \inqmlmodule QtMultimedia
+ \ingroup multimedia_qml
+ \ingroup multimedia_audio_qml
+
+ \qml
+ CaptureSession {
+ id: playMusic
+ audioInput: AudioInput {
+ volume: slider
+ }
+ recorder: MediaRecorder { ... }
+ }
+ Slider {
+ id: slider
+ from: 0.
+ to: 1.
+ }
+ \endqml
+
+ You can use AudioInput together with a QtMultiMedia::CaptureSession to capture audio from an audio
+ input device.
+
+ \sa Camera AudioOutput
+*/
+
+/*!
\class QAudioInput
\brief Represents an input channel for audio.
\inmodule QtMultimedia
@@ -55,52 +85,15 @@
to be used, muting the channel, and changing the channel's volume.
*/
-/*!
- \property QAudioInput::volume
- \brief The current volume.
-
- The volume is scaled linearly, ranging from \c 0 (silence) to \c 1
- (full volume).
- \note values outside this range will be clamped.
-
- By default the volume is \c 1.
-
- UI volume controls should usually be scaled non-linearly. For example,
- using a logarithmic scale will produce linear changes in perceived loudness,
- which is what a user would normally expect from a volume control.
- \sa QAudio::convertVolume()
-*/
-
-/*!
- \property QAudioInput::muted
- \brief The muted state of the current media.
-
- The value will be \c true if the input is muted; otherwise \c false.
-*/
-
-/*!
- \property QAudioInput::device
- \brief The audio device connected to this input.
-
- The device property represents the audio device connected to this input. A
- default constructed QAudioInput object will be connected to the system's
- default audio input at construction time.
-
- This property can be used to select any other input device listed by
- QMediaDevices::audioInputs().
-*/
-
QAudioInput::QAudioInput(QObject *parent)
- : QAudioInput(QMediaDevices::defaultAudioInput(), parent)
+ : QAudioInput(QMediaDevices::defaultAudioInput(), parent)
{}
QAudioInput::QAudioInput(const QAudioDevice &device, QObject *parent)
- : QObject(parent),
+ : QObject(parent),
d(QPlatformMediaIntegration::instance()->createAudioInput(this))
{
- d->device = device;
- if (!d->device.isNull() && d->device.mode() != QAudioDevice::Input)
- d->device = QMediaDevices::defaultAudioInput();
+ d->device = device.mode() == QAudioDevice::Input ? device : QMediaDevices::defaultAudioInput();
d->setAudioDevice(d->device);
}
@@ -109,20 +102,19 @@ QAudioInput::~QAudioInput()
delete d;
}
-QAudioDevice QAudioInput::device() const
-{
- return d->device;
-}
+/*!
+ \qmlproperty real QtMultimedia::AudioInput::volume
-void QAudioInput::setDevice(const QAudioDevice &device)
-{
- if (device.mode() == QAudioDevice::Output)
- return;
- d->device = device;
- d->setAudioDevice(device);
- emit deviceChanged();
-}
+ The volume is scaled linearly, ranging from \c 0 (silence) to \c 1 (full volume).
+ \note values outside this range will be clamped.
+ By default the volume is \c 1.
+
+ UI volume controls should usually be scaled non-linearly. For example,
+ using a logarithmic scale will produce linear changes in perceived loudness,
+ which is what a user would normally expect from a volume control.
+ \sa QAudio::convertVolume()
+*/
float QAudioInput::volume() const
{
return d->volume;
@@ -138,6 +130,20 @@ void QAudioInput::setVolume(float volume)
emit volumeChanged(volume);
}
+/*!
+ \qmlproperty bool QtMultimedia::AudioInput::muted
+
+ This property holds whether the audio input is muted.
+
+ Defaults to \c{false}.
+*/
+
+/*!
+ \property QAudioInput::muted
+ \brief The muted state of the current media.
+
+ The value will be \c true if the input is muted; otherwise \c false.
+*/
bool QAudioInput::isMuted() const
{
return d->muted;
@@ -152,4 +158,43 @@ void QAudioInput::setMuted(bool muted)
emit mutedChanged(muted);
}
+/*!
+ \qmlproperty QtMultimedia::AudioInput::device
+
+ This property describes the audio device connected to this input.
+
+ The device property represents the audio device this input is connected to.
+ This property can be used to select an output device from the
+ QtMultimedia::MediaDevices::audioInputs() list.
+*/
+
+/*!
+ \property QAudioInput::device
+ \brief The audio device connected to this input.
+
+ The device property represents the audio device connected to this input.
+ This property can be used to select an input device from the
+ QMediaDevices::audioInputs() list.
+
+ You can select the system default audio input by setting this property to
+ a default constructed QAudioDevice object.
+*/
+QAudioDevice QAudioInput::device() const
+{
+ return d->device;
+}
+
+void QAudioInput::setDevice(const QAudioDevice &device)
+{
+ auto dev = device;
+ if (dev.isNull())
+ dev = QMediaDevices::defaultAudioInput();
+ if (dev.mode() != QAudioDevice::Input)
+ return;
+ if (d->device == dev)
+ return;
+ d->device = dev;
+ d->setAudioDevice(dev);
+ emit deviceChanged();
+}
#include "moc_qaudioinput.cpp"