Sur cette page

Exemple d'enregistreur audio

Découverte des périphériques disponibles et des codecs pris en charge.

L'exempleAudio Recorder montre comment identifier les périphériques disponibles et les codecs pris en charge, et comment utiliser la classe QAudioRecorder.

Panneau de configuration pour choisir l'entrée audio, le codec et le type de format

Exécution de l'exemple

Pour exécuter l'exemple à partir de Qt CreatorOuvrez le mode Welcome et sélectionnez l'exemple à partir de Examples. Pour plus d'informations, voir Qt Creator: Tutorial : Construire 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. Il est possible de régler la qualité ou le débit binaire. Enfin, le fichier de sortie peut être sélectionné et l'enregistrement peut être lancé.

Les listes sont remplies à l'aide des méthodes suivantes :

Le curseur de qualité est configuré de 0 (zéro) à QMediaRecorder::VeryHighQuality avec une valeur par défaut de QMediaRecorder::NormalQuality, tandis que la case du débit binaire est codée en dur dans la liste.

Enregistrement audio

Pour enregistrer de l'audio, il suffit de créer un objet QAudioRecorder,

audioRecorder = new QAudioRecorder(this);

et de configurer les listes comme décrit ci-dessus. state Le texte des boutons d'enregistrement et de pause est modifié en fonction de l'état de l'objet audioRecorder. Cela signifie que si l'état est QMediaRecorder::StoppedState, le texte du bouton sera "Record" et "Pause". Sur QMediaRecorder::RecordingState, le bouton d'enregistrement aura le texte "Stop", et sur QMediaRecorder::PausedState, le bouton de pause aura le texte "Resume".

L'appui sur les boutons entraîne également un basculement en fonction de l'état. Si l'enregistrement est arrêté, le fait d'appuyer sur le bouton d'enregistrement définira les paramètres d'encodage et le conteneur de l'objet audioRecorder et 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));

Exemple de projet @ code.qt.io

© 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.