QAudioSource Class
Die Klasse „QAudioSource“ bietet eine Schnittstelle zum Empfangen von Audiodaten von einem Audio-Eingabegerät. Mehr...
| Header: | #include <QAudioSource> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
| Erbt von: | QObject |
Öffentliche Funktionen
| QAudioSource(const QAudioFormat &format = QAudioFormat(), QObject *parent = nullptr) | |
| QAudioSource(const QAudioDevice &audioDevice, const QAudioFormat &format = QAudioFormat(), QObject *parent = nullptr) | |
| virtual | ~QAudioSource() override |
(since 6.10) qsizetype | bufferFrameCount() const |
| qsizetype | bufferSize() const |
| qsizetype | bytesAvailable() const |
| qint64 | elapsedUSecs() const |
| QtAudio::Error | error() const |
| QAudioFormat | format() const |
(since 6.10) qsizetype | framesAvailable() const |
| bool | isNull() const |
(since 6.12) qsizetype | nativePeriodFrameCount() const |
| qint64 | processedUSecs() const |
| void | reset() |
| void | resume() |
(since 6.10) void | setBufferFrameCount(qsizetype value) |
| void | setBufferSize(qsizetype value) |
(since 6.12) void | setNativePeriodFrameCount(qsizetype frameCount) |
| void | setVolume(qreal volume) |
| QIODevice * | start() |
(since 6.11) void | start(Callback &&cb) |
| void | start(QIODevice *device) |
| QtAudio::State | state() const |
| void | stop() |
| void | suspend() |
| qreal | volume() const |
Signale
| void | stateChanged(QtAudio::State state) |
Ausführliche Beschreibung
Sie können einen Audioeingang mit dem standardmäßigen Audioeingabegerät des Systems erstellen. Es ist auch möglich, eine `QAudioSource` mit einem bestimmten ` QAudioDevice` zu erstellen. Beim Erstellen des Audioeingangs sollten Sie außerdem die für die Aufnahme zu verwendende ` QAudioFormat ` übergeben (Einzelheiten finden Sie in der Klassenbeschreibung von ` QAudioFormat `).
QAudioSink kann in zwei verschiedenen Modi verwendet werden:
- Verwendung eines „ QIODevice “ aus einem Anwendungsthread
- Verwendung einer Callback-basierten Schnittstelle aus dem Audio-Thread
QIODevice-Schnittstelle
Mit `QAudioSource` können Sie Audio mit einem Audio-Eingabegerät aufnehmen. Der Standardkonstruktor dieser Klasse verwendet das Standard-Audiogerät des Systems, Sie können jedoch auch eine ` QAudioDevice ` für ein bestimmtes Gerät angeben. Außerdem müssen Sie den ` QAudioFormat ` übergeben, in dem Sie aufnehmen möchten.
Zum Starten von QAudioSource rufen Sie einfach ` start()` mit einem zum Schreiben geöffneten ` QIODevice ` auf. Um beispielsweise in eine Datei aufzunehmen, können Sie Folgendes tun:
QFile destinationFile; // Klassenmitglied
QAudioSource* audio; // Klassenmitglied
{
destinationFile.setFileName("/tmp/test.raw");
destinationFile.open( QIODevice::WriteOnly | QIODevice::Truncate );
QAudioFormat format;
// Das gewünschte Format festlegen, zum Beispiel:
format.setSampleRate(44100);
format.setChannelCount(1);
format.setSampleFormat(QAudioFormat::Int16);
QAudioDevice info = QMediaDevices::defaultAudioInput();
if (!info.isFormatSupported(format)) {
qWarning() << "Default format not supported, trying to use the nearest.";
}
audio = new QAudioSource(format, this);
connect(audio, &QAudioSource::stateChanged, this, &AudioInputExample::handleStateChanged);
QTimer::singleShot(3000, this, &AudioInputExample::stopRecording);
audio->start(&destinationFile);
// Nimmt Audio für 3000 ms auf
}Die Aufnahme wird gestartet, sofern das angegebene Format vom Eingabegerät unterstützt wird (dies können Sie mit ` QAudioDevice::isFormatSupported()` überprüfen). Sollten Probleme auftreten, verwenden Sie die Funktion ` error()`, um zu überprüfen, was schiefgelaufen ist. Die Aufnahme wird im Slot ` stopRecording() ` beendet.
void AudioInputExample::stopRecording()
{
audio->stop();
destinationFile.close();
delete audio;
}Zu jedem Zeitpunkt befindet sich `QAudioSource` in einem von vier Zuständen: aktiv, angehalten, gestoppt oder im Leerlauf. Diese Zustände werden durch die Enumeration ` QtAudio::State ` festgelegt.
QAudioSource bietet mehrere Möglichkeiten, die seit dem Aufruf von ` start()` der Aufnahme verstrichene Zeit zu messen. Die Funktion „ processedUSecs() “ gibt die Länge des geschriebenen Streams in Mikrosekunden zurück, d. h., Zeiten, in denen der Audioeingang angehalten wurde oder im Leerlauf war, werden dabei nicht berücksichtigt. Die Funktion „ elapsedUSecs()“ gibt die seit dem Aufruf von „ start()“ verstrichene Zeit zurück, unabhängig davon, in welchen Zuständen sich QAudioSource befunden hat.
Threading-Modell und Pufferung
Die Schnittstelle „ QIODevice “ ist für die Verwendung im Anwendungsthread ausgelegt. Zur Kommunikation mit dem Audiothread wird ein wartungsfreier Ringpuffer verwendet. Die Größe dieses Ringpuffers kann mit „ setBufferSize()“ konfiguriert werden und beträgt standardmäßig 250 ms. Der Status dieses Puffers kann mit `bytesFree()` abgefragt werden. Ist der Ringpuffer voll, weil die Anwendung nicht rechtzeitig aus dem ` QIODevice ` liest, wechselt der Status zu „ QtAudio::IdleState “ und kehrt zu „ QtAudio::ActiveState “ zurück, sobald die Anwendung Daten aus dem ` QIODevice` gelesen hat. Beachten Sie, dass bei diesem Statuswechsel Audiodaten verloren gehen können; Sie sollten daher immer so schnell wie möglich aus dem ` QIODevice ` lesen, um Aussetzer zu vermeiden.
Callback-Schnittstelle
Der bevorzugte Weg, um niedrige Audio-Latenzen zu erreichen, ist die Verwendung der callback-basierten Schnittstelle. Sie ermöglicht es Ihnen, Audiodaten direkt vom Audiogerät zu lesen, ohne den Umweg über „ QIODevice “ nehmen zu müssen. Dies geschieht durch den Aufruf von „ start()“ mit einer Callback-Funktion, die vom Audio-Thread aufgerufen wird. Diese Callback-Funktion wird mit einem ` QSpan<const SampleType>` aufgerufen, sobald das Audio-Backend Daten erzeugt.
QAudioSource* audio; // Klassenmitglied.
std::atomic<float> peakLevel; // Klassenmitglied.
{
QAudioFormat format;
// Format einrichten, z. B.
format.setSampleRate(44100);
format.setChannelCount(2);
format.setSampleFormat(QAudioFormat::Float);
QAudioDevice info(QMediaDevices::defaultAudioOutput());
if (!info.isFormatSupported(format)) {
qWarning() << "Raw audio format not supported by backend, cannot capture audio.";
return;
}
audio = new QAudioSource(format, this);
audio->start([&peakLevel] (QSpan<float> interleavedAudioBuffer) {
float level = peakLevel.load();
for (float sample : interleavedAudioBuffer) {
// Berechne den Spitzenpegel aus den Audio-Samples
level = std::max(level, std::abs(sample));
}
peakLevel.store(level);
// Hinweis: Es ist Vorsicht geboten, wenn der Anwendungsthread benachrichtigt werden muss, da der
// Audio-Callback keine potenziell blockierenden Systemaufrufe verwenden sollte.
// Gute Optionen sind Autoreset-Ereignisse (Windows), eventfd (Linux) oder kqueue/EVFILT_USER unter macOS.
});
if (!audio->error()== QtAudio::Error::NoError) {
// Zusätzlich zu den anderen `start()`-Signaturen schlägt der Start des Audio-Callbacks fehl, wenn
// * das Backend keine callback-basierte E/A implementiert (die API ist auf allen wichtigen
// Plattformen verfügbar )
// * die Signatur des Audio-Callbacks nicht mit `format.sampleFormat()` übereinstimmt
qWarning() << "Error starting audio output:" << audio->errorString();
}
}Im Gegensatz zur auf „ QIODevice “ basierenden Schnittstelle kann sich die „QAudioSource“ nur in den Zuständen „active“, „suspendend“ und „stopped“ befinden. Die API „ setBufferSize()“ ist bei Verwendung des Callbacks nicht verfügbar; die Größe des Callback-Arguments wird vom Audio-Backend bestimmt.
Hinweis: Diese API ist nur auf Plattformen verfügbar, die die Callback-API unterstützen: Apples CoreAudio (macOS, iOS usw.), Windows, Linux (mit dem PulseAudio- oder PipeWire-Backend) und Android.
Hinweis: Der Callback wird in einem Soft-Echtzeit-Audio-Thread aufgerufen. Es ist wichtig sicherzustellen, dass der Callback nicht blockiert, da dies zu Audio-Störungen oder Aussetzern führen kann. Dazu gehören blockierende E/A-Vorgänge, das Sperren von Mutexen, die Zuweisung von Speicher oder andere Operationen, die zu einer Blockierung führen können. Bewährte Vorgehensweisen finden Sie in Ross Bencinas Artikel „Real-time audio programming 101: time waits for nothing“. Ziehen Sie außerdem die Verwendung des Realtime-Sanitizers von Clang in Betracht, um den Audio-Callback zu validieren.
Zustands- und Fehlerbehandlung
Zustandsänderungen werden über das Signal „ stateChanged()“ gemeldet. Sie können eine Zustandsänderung direkt über „ suspend()“, „ resume()“, „ stop()“, „ reset()“ und „ start()“ anfordern.
Die QAudioSource wechselt in den Fehlerzustand „ StoppedState “, wenn ein Fehler auftritt. Der Fehlerzustand „ error type “ kann über die Funktion error() abgerufen werden. Eine Beschreibung der möglichen Fehlermeldungen finden Sie in der Enumeration QtAudio::Error. Durch den Aufruf von stop() oder reset() wird der Fehlerzustand auf „ NoError “ zurückgesetzt.
void AudioInputExample::handleStateChanged(QtAudio::State newState)
{
switch (newState) {
case QtAudio::StoppedState:
if (audio->error() != QtAudio::NoError) {
// Error handling
} else {
// Finished recording
}
break;
case QtAudio::ActiveState:
// Started recording - read from IO device
break;
default:
// ... other cases as appropriate
break;
}
}Siehe auch „ QAudioSink “ und „ QAudioDevice “.
Dokumentation zu Member-Funktionen
[explicit] QAudioSource::QAudioSource(const QAudioFormat &format = QAudioFormat(), QObject *parent = nullptr)
Erstellen Sie einen neuen Audioeingang und ordnen Sie ihn „ parent “ zu. Das Standard-Audioeingabegerät wird mit den Ausgabeparametern „ format “ verwendet. Wenn „ format “ standardmäßig initialisiert ist, wird das Format auf das bevorzugte Format des Audiogeräts gesetzt.
[explicit] QAudioSource::QAudioSource(const QAudioDevice &audioDevice, const QAudioFormat &format = QAudioFormat(), QObject *parent = nullptr)
Erstellen Sie einen neuen Audioeingang und ordnen Sie ihn „ parent “ zu. Das Gerät, auf das „ audioDevice “ verweist, wird mit den Eingangsparametern „ format “ verwendet. Wenn „ format “ standardmäßig initialisiert wird, wird das Format auf das bevorzugte Format von „ audioDevice “ gesetzt.
[override virtual noexcept] QAudioSource::~QAudioSource()
Lösche diesen Audioeingang.
[since 6.10] qsizetype QAudioSource::bufferFrameCount() const
Gibt die Größe des Audio-Puffers in Frames zurück.
Wird vor dem Aufruf von ` start()` aufgerufen, wird der Plattform-Standardwert zurückgegeben. Wird vor dem Aufruf von ` start() ` aufgerufen, aber zuvor wurden bereits ` setBufferSize()` oder ` setBufferFrameCount()` aufgerufen, wird der durch ` setBufferSize() ` oder ` setBufferFrameCount()` festgelegte Wert zurückgegeben. Wird nach dem Aufruf von ` start()` aufgerufen, wird die tatsächlich verwendete Puffergröße zurückgegeben. Diese entspricht möglicherweise nicht dem Wert, der zuvor durch ` setBufferSize() ` oder ` setBufferFrameCount()` festgelegt wurde.
Diese Funktion wurde in Qt 6.10 eingeführt.
Siehe auch setBufferFrameCount() und bufferSize.
qsizetype QAudioSource::bufferSize() const
Gibt die Größe des Audio-Puffers in Byte zurück.
Wird vor dem Aufruf von ` start()` aufgerufen, wird der Standardwert der Plattform zurückgegeben. Wird vor dem Aufruf von ` start() ` aufgerufen, aber zuvor wurden bereits ` setBufferSize()` oder ` setBufferFrameCount()` aufgerufen, wird der durch ` setBufferSize() ` oder ` setBufferFrameCount()` festgelegte Wert zurückgegeben. Wird nach dem Aufruf von ` start()` aufgerufen, wird die tatsächlich verwendete Puffergröße zurückgegeben. Diese entspricht möglicherweise nicht dem Wert, der zuvor durch ` setBufferSize() ` oder ` setBufferFrameCount()` festgelegt wurde.
Siehe auch setBufferSize() und bufferFrameCount.
qsizetype QAudioSource::bytesAvailable() const
Gibt die Menge der zum Lesen verfügbaren Audiodaten in Byte zurück.
Hinweis: DerRückgabewert ist nur gültig, solange sich das Gerät im Status „ QtAudio::ActiveState “ oder „ QtAudio::IdleState “ befindet; andernfalls wird Null zurückgegeben.
Siehe auch „ framesAvailable “.
qint64 QAudioSource::elapsedUSecs() const
Gibt die Zeit in Mikrosekunden seit dem Aufruf von ` start()` zurück, einschließlich der Zeit in den Zuständen „Idle“ und „Suspend“.
QtAudio::Error QAudioSource::error() const
Gibt den Fehlerstatus zurück.
QAudioFormat QAudioSource::format() const
Gibt den derzeit verwendeten „ QAudioFormat “ zurück.
[since 6.10] qsizetype QAudioSource::framesAvailable() const
Gibt die Menge der zum Auslesen verfügbaren Audiodaten in Frames zurück.
Hinweis: Der Rückgabewert ist nur gültig, solange sich die Funktion im Status „ QtAudio::ActiveState “ oder „ QtAudio::IdleState “ befindet; andernfalls wird Null zurückgegeben.
Diese Funktion wurde in Qt 6.10 eingeführt.
Siehe auch „ bytesAvailable “.
bool QAudioSource::isNull() const
Gibt „ true “ zurück, wenn die Audioquelle „ null “ ist; andernfalls wird „ false “ zurückgegeben.
[since 6.12] qsizetype QAudioSource::nativePeriodFrameCount() const
Gibt die native Anzahl der Perioden zurück.
Gibt -1 zurück, wenn nicht festgelegt; andernfalls wird der zuvor mit ` setNativePeriodFrameCount()` festgelegte Wert zurückgegeben.
Diese Funktion wurde in Qt 6.12 eingeführt.
Siehe auch „ setNativePeriodFrameCount “.
qint64 QAudioSource::processedUSecs() const
Gibt die Menge der seit dem Aufruf von ` start()` verarbeiteten Audiodaten in Mikrosekunden zurück.
void QAudioSource::reset()
Löscht alle Audiodaten in den Puffern und setzt die Puffer auf Null zurück.
void QAudioSource::resume()
Setzt die Verarbeitung von Audiodaten nach einem Aufruf von ` suspend()` fort.
Setzt „ state()“ auf den Zustand, den der Audio-Sink zum Zeitpunkt des Aufrufs von „ suspend()“ hatte. Diese Funktion führt keine Aktion aus, wenn der Zustand des Audio-Sinks nicht „ QtAudio::SuspendedState “ ist.
[since 6.10] void QAudioSource::setBufferFrameCount(qsizetype value)
Stellt die Größe des Audiopuffers auf „ value “ in Frame-Zählung ein.
Hinweis: Diese Funktion kann jederzeit vor dem Aufruf von ` start()` aufgerufen werden. Aufrufe dieser Funktion werden nach dem Aufruf von ` start()` ignoriert. Es sollte nicht davon ausgegangen werden, dass die festgelegte Puffergröße der tatsächlich verwendeten Puffergröße entspricht – rufen Sie ` bufferFrameCount()` jederzeit nach dem Aufruf von ` start()` auf, um die tatsächlich verwendete Puffergröße abzurufen.
Die Eigenschaften „ bufferFrameCount “ () und „ bufferSize “ () geben die Größe des Ringpuffers bei Verwendung der „ QIODevice “-APIs an. Die native Periodengröße wird über „ setNativePeriodFrameCount “ () gesteuert.
Diese Funktion wurde in Qt 6.10 eingeführt.
Siehe auch bufferFrameCount() und setBufferSize.
void QAudioSource::setBufferSize(qsizetype value)
Stellt die Größe des Audiopuffers auf value Bytes ein.
Hinweis: Diese Funktion kann jederzeit vor dem Aufruf von „ start()“ aufgerufen werden; Aufrufe nach dem Aufruf von „ start()“ werden ignoriert. Es sollte nicht davon ausgegangen werden, dass die festgelegte Puffergröße der tatsächlich verwendeten Puffergröße entspricht. Ein Aufruf von „ bufferSize()“ zu einem beliebigen Zeitpunkt nach dem Aufruf von „ start()“ gibt die tatsächlich verwendete Puffergröße zurück.
Die Eigenschaften „ bufferFrameCount()“ und „ bufferSize()“ geben die Ringpuffergröße bei Verwendung der „ QIODevice “-APIs an. Die native Periodengröße wird über „ setNativePeriodFrameCount()“ gesteuert.
Siehe auch bufferSize() und setBufferFrameCount.
[since 6.12] void QAudioSource::setNativePeriodFrameCount(qsizetype frameCount)
Legt die native Perioden-Frame-Anzahl auf „ frameCount “ fest.
Passen Sie die vom Betriebssystem und der Hardware verwendete Audio-Puffergröße an. Standardmäßig (wenn nicht festgelegt) verwendet das System einen plattformabhängigen Wert, typischerweise 1024 Frames (~23 ms bei 44100 Hz).
Verwenden Sie kleinere Werte (64–256), um die Latenz zu verringern, oder größere Werte (2048–4096), um das Risiko von Pufferüberläufen (Dropouts) zu verringern.
Gültige Werte sind 2-Potenzen zwischen 32 und 4096 (einschließlich) oder -1, um die Einstellung aufzuheben. Kann nur aufgerufen werden, wenn die Audioquelle angehalten ist.
Entspricht den plattformspezifischen Einstellungen: kAudioDevicePropertyBufferFrameSize (macOS), IAudioClient::bufferDuration (Windows), PW_KEY_NODE_FORCE_QUANTUM (PipeWire/Linux) und AAudioStreamBuilder_setBufferCapacityInFrames (Android).
Hinweis: Dies ist unabhängig von dem mit setBufferSize() oder setBufferFrameCount() konfigurierten Ringpuffer.
Diese Funktion wurde in Qt 6.12 eingeführt.
Siehe auch nativePeriodFrameCount.
void QAudioSource::setVolume(qreal volume)
Stellt die Eingangslautstärke auf „ volume “ ein.
Die Lautstärke wird linear von 0.0 (Stille) bis 1.0 (volle Lautstärke) skaliert. Werte außerhalb dieses Bereichs werden begrenzt.
Wenn das Gerät die Anpassung der Eingangslautstärke nicht unterstützt, wird „ volume “ ignoriert und die Eingangslautstärke bleibt bei 1,0.
Die Standardlautstärke beträgt 1.0.
Hinweis: Änderungen an der Lautstärke wirken sich auf die Lautstärke dieses Audiostreams aus, nicht auf die globale Lautstärke.
Siehe auch ` volume()`.
QIODevice *QAudioSource::start()
Gibt einen Zeiger auf den internen „ QIODevice “ zurück, der zur Übertragung von Daten aus dem Audioeingang des Systems verwendet wird. Das Gerät ist bereits geöffnet, und mit „ read()“ können Daten direkt daraus gelesen werden.
Hinweis: Der Zeiger wird ungültig, sobald der Stream gestoppt wird oder wenn Sie einen anderen Stream starten.
Wenn der „ QAudioSource “ auf das Audio-Gerät des Systems zugreifen kann, gibt ` state()` ` QtAudio::IdleState` zurück, ` error()` gibt ` QtAudio::NoError ` zurück und das Signal ` stateChanged()` wird ausgelöst.
Tritt während dieses Vorgangs ein Problem auf, gibt „ error “ () „ QtAudio::OpenError “ zurück, „ state “ () gibt „ QtAudio::StoppedState “ zurück und das Signal „ stateChanged “ () wird ausgelöst.
Siehe auch QIODevice und QIODevice interface.
[since 6.11] template <typename Callback> requires QtAudio::if_audio_source_callback<Callback> void QAudioSource::start(Callback &&cb)
Startet den „ QAudioSource “ mit einer Callback-Funktion, die in einem Soft-Realtime-Audio-Thread aufgerufen wird. Der Callback ist ein Callable, das ein „ QSpan<const SampleType>“ als Argument entgegennimmt. „SampleType“ muss mit dem „ QAudioFormat::SampleFormat “ des Formats des „ QAudioSource “ übereinstimmen. Der Bereich enthält die verschachtelten Audiodaten.
Wenn der „ QAudioSource “ erfolgreich gestartet werden kann, gibt „ error()“ „ QtAudio::NoError “ zurück.
Tritt während dieses Vorgangs ein Problem auf, gibt „ error()“ „ QtAudio::OpenError “ zurück, „ state()“ gibt „ QtAudio::StoppedState “ zurück und das Signal „ stateChanged()“ wird ausgelöst.
Hinweis: Diese API ist nur auf Plattformen verfügbar, die die Callback-API unterstützen: Apples CoreAudio (macOS, iOS usw.), Windows, Linux (mit dem PulseAudio- oder PipeWire-Backend) und Android.
Hinweis: Der Callback wird in einem Soft-Echtzeit-Audio-Thread aufgerufen. Es ist wichtig sicherzustellen, dass der Callback nicht blockiert, da dies zu Audio-Störungen oder Aussetzern führen kann. Dazu gehören blockierende E/A-Operationen, das Sperren von Mutexen, die Zuweisung von Speicher oder andere Operationen, die zu einer Blockierung führen können. Bewährte Vorgehensweisen finden Sie in Ross Bencinas Artikel „Real-time audio programming 101: time waits for nothing“. Ziehen Sie außerdem die Verwendung des Realtime-Sanitizers von Clang in Betracht, um den Audio-Callback zu validieren.
Diese Funktion wurde in Qt 6.11 eingeführt.
Siehe auch „ Callback interface “.
void QAudioSource::start(QIODevice *device)
Beginnt mit der Übertragung von Audiodaten vom Audioeingang des Systems an den „ device “. Der „ device “ muss zuvor in den Modi „ WriteOnly “, „ Append “ oder „ ReadWrite “ geöffnet worden sein.
Wenn der ` QAudioSource ` erfolgreich Audiodaten empfangen kann, gibt ` state()` entweder ` QtAudio::ActiveState ` oder ` QtAudio::IdleState` zurück, ` error()` gibt ` QtAudio::NoError ` zurück und das Signal ` stateChanged()` wird ausgegeben.
Tritt während dieses Vorgangs ein Problem auf, gibt „ error()“ „ QtAudio::OpenError “ zurück, „ state()“ gibt „ QtAudio::StoppedState “ zurück und das Signal „ stateChanged()“ wird ausgelöst.
Siehe auch QIODevice und QIODevice interface.
QtAudio::State QAudioSource::state() const
Gibt den Status der Audioverarbeitung zurück.
[signal] void QAudioSource::stateChanged(QtAudio::State state)
Dieses Signal wird ausgelöst, wenn sich die Eigenschaft „ state “ des Geräts geändert hat.
Hinweis: Der Namespace „ QtAudio “ hieß bis einschließlich Qt 6.6 „QAudio“. Bei stringbasierten Verbindungen zu diesem Signal muss als Parametertyp „ QAudio::State “ verwendet werden: connect(source, SIGNAL(stateChanged(QAudio::State)), ...);
void QAudioSource::stop()
Beendet die Audioeingabe und trennt die Verbindung zur Systemressource.
Setzt „ error “ () auf „ QtAudio::NoError “, „ state “ () auf „ QtAudio::StoppedState “ und löst das Signal „ stateChanged “ () aus.
void QAudioSource::suspend()
Beendet die Verarbeitung von Audiodaten, wobei die gepufferten Audiodaten erhalten bleiben.
Setzt „ error()“ auf „ QtAudio::NoError “, „ state()“ auf „ QtAudio::SuspendedState “ und gibt das Signal „ stateChanged()“ aus.
qreal QAudioSource::volume() const
Gibt die Eingangslautstärke zurück.
Wenn das Gerät die Anpassung der Eingangslautstärke nicht unterstützt, beträgt der Rückgabewert 1,0.
Siehe auch setVolume().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.