Beispiel für einen Audio-Recorder
Ermittlung der verfügbaren Geräte und unterstützten Codecs.
Das Beispiel„Audio Recorder“ veranschaulicht, wie man die verfügbaren Geräte und unterstützten Codecs ermittelt und wie man die Klasse „QAudioRecorder“ verwendet.

Ausführen des Beispiels
Sie können das Beispiel wie folgt ausführen:
- Qt Creator
Öffnen Sie den Modus „ Welcome “ und wählen Sie das Beispiel unter „ Examples “ aus. Weitere Informationen finden Sie unter Qt Creator: Tutorial: Erstellen und Ausführen.
- Qt Extension for Visual Studio Code
Führen Sie den Befehl „ Qt: Open Qt examples “ aus dem Verzeichnis „ Command Palette “ aus und wählen Sie das Beispiel aus der Liste aus. Weitere Informationen finden Sie unter Qt Extension for Visual Studio Code: Tutorial: Erstellen und Ausführen.
Anzeige des Fensters und der Audioeinstellungen
Wir zeigen ein Fenster an, in dem der Benutzer den entsprechenden Audioeingang, Codec, Container, die Abtastrate und die Kanäle auswählen kann. Es ermöglicht die Einstellung entweder der Qualität oder der Bitrate. Schließlich kann die Ausgabedatei ausgewählt und die Aufnahme gestartet werden.
Die Listen werden mithilfe der folgenden Methoden gefüllt:
- QMediaDevices::audioInputs()
- QMediaFormat::supportedAudioCodecs
- QMediaFormat::supportedFileFormats
- QAudioDevice::maximumSampleRate()
- QAudioDevice::minimumSampleRate()
Der Qualitätsregler ist auf Werte von 0 (Null) bis QMediaRecorder::VeryHighQuality eingestellt, wobei der Standardwert QMediaRecorder::NormalQuality lautet, während die Bitratenwerte fest in die Liste eingetragen sind.
Audio aufnehmen
Um Audio aufzunehmen, erstellen wir einfach ein QAudioRecorder-Objekt,
audioRecorder = new QAudioRecorder(this);und richten die Listen wie oben beschrieben ein. Der Text auf den Schaltflächen „Aufnahme“ und „Pause“ wechselt je nach dem state des audioRecorder -Objekts. Das bedeutet: Wenn der Zustand „ QMediaRecorder::StoppedState “ ist, lautet der Text auf den Schaltflächen „Aufnahme“ und „Pause“. Bei „ QMediaRecorder::RecordingState “ trägt die Aufnahmeschaltfläche den Text „Stopp“, und bei „ QMediaRecorder::PausedState “ trägt die Pausenschaltfläche den Text „Fortsetzen“.
Das Drücken der Schaltflächen bewirkt zudem je nach Status eine Umschaltung. Ist die Aufnahme gestoppt, werden durch Drücken der Aufnahmetaste die Kodierungseinstellungen und der Container im Objekt „ audioRecorder “ festgelegt und die Aufnahme mit der Methode „ record()“ gestartet.
QMediaFormat format;
format.setCodec(boxValue(ui->audioCodecBox).toString());
audioRecorder->setMediaFormat(format);
audioRecorder->setSampleRate(boxValue(ui->sampleRateBox).toInt());
audioRecorder->setBitRate(boxValue(ui->bitrateBox).toInt());
audioRecorder->setQuality(QMediaRecorder::EncodingQuality(ui->qualitySlider->value()));
audioRecorder->setEncodingMode(ui->constantQualityRadioButton->isChecked() ?
QMediaRecorder::ConstantQualityEncoding :
QMediaRecorder::ConstantBitRateEncoding);
QString container = boxValue(ui->containerBox).toString();
audioRecorder->record();Während der Aufnahme wird die Statusleiste der Anwendung mit Informationen zur Dauer aktualisiert, die vom Signal „ durationChanged “ des Objekts „ audioRecorder “ stammen.
ui->statusbar->showMessage(tr("Recorded %1 sec").arg(duration / 1000));© 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.