Exemple d'enregistreur audio
Découverte des périphériques disponibles et des codecs pris en charge.
L'exemple «Enregistreur audio » montre comment identifier les périphériques disponibles et les codecs pris en charge, ainsi que l'utilisation de la classe QAudioRecorder.

Exécution de l’exemple
Vous pouvez exécuter l'exemple à partir de :
- Qt Creator
Ouvrez le mode « Welcome » et sélectionnez l'exemple dans « Examples ». Pour plus d'informations, consultez Qt Creator: Tutoriel : Compiler et exécuter.
- Qt Extension for Visual Studio Code
Exécutez la commande « Qt: Open Qt examples » à partir de Command Palette, puis sélectionnez l’exemple dans la liste. Pour plus d’informations, consultez Qt Extension for Visual Studio Code: Tutoriel : Compiler et exécuter.
Affichage de la fenêtre et des paramètres audio
Nous affichons une fenêtre permettant à l’utilisateur de sélectionner l’entrée audio, le codec, le conteneur, la fréquence d’échantillonnage et les canaux appropriés. Elle permet de définir soit la qualité, soit le débit binaire. Enfin, le fichier de sortie peut être sélectionné et l’enregistrement peut démarrer.
Les listes sont remplies à l’aide des méthodes suivantes :
- QMediaDevices::audioInputs()
- QMediaFormat::supportedAudioCodecs
- QMediaFormat::supportedFileFormats
- QAudioDevice::maximumSampleRate()
- QAudioDevice::minimumSampleRate()
Le curseur de qualité est réglable de 0 (zéro) à QMediaRecorder::VeryHighQuality, avec une valeur par défaut de QMediaRecorder::NormalQuality, tandis que les valeurs de débit binaire sont codées en dur dans la liste.
Enregistrement audio
Pour enregistrer du son, il suffit de créer un objet QAudioRecorder,
audioRecorder = new QAudioRecorder(this);et de configurer les listes comme décrit ci-dessus. Le texte des boutons d’enregistrement et de pause change en fonction de l’ state de l’objet audioRecorder. Cela signifie que si l’état est QMediaRecorder::StoppedState, le texte des boutons sera « Enregistrer » et « Pause ». Dans l’ QMediaRecorder::RecordingState, le bouton d’enregistrement affichera le texte « Arrêter », et dans l’ QMediaRecorder::PausedState, le bouton de pause affichera le texte « Reprendre ».
Appuyer sur les boutons entraînera également une bascule en fonction de l’état. Si l’enregistrement est arrêté, appuyer sur le bouton d’enregistrement définira les paramètres d’encodage et le conteneur sur l’objet audioRecorder, puis lancera l’enregistrement à l’aide de la méthode record().
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();Pendant l’enregistrement, la barre d’état de l’application est mise à jour avec les informations de durée provenant du signal « durationChanged » de l’objet « audioRecorder ».
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.