Ejemplo de grabadora de audio
Descubriendo los dispositivos disponibles y los codecs soportados.
Audio Recorder demuestra cómo identificar los dispositivos disponibles y los codecs soportados, y el uso de la clase QAudioRecorder.

Ejecutando el Ejemplo
Para ejecutar el ejemplo desde Qt Creatorabra el modo Welcome y seleccione el ejemplo de Examples. Para más información, consulta Qt Creator: Tutorial: Construir y ejecutar.
Visualización de la ventana y ajustes de audio
Mostramos una ventana para que el usuario seleccione la entrada de audio apropiada, el códec, el contenedor, la frecuencia de muestreo y los canales. También permite configurar la calidad o la tasa de bits. Por último, se puede seleccionar el archivo de salida e iniciar la grabación.
Las listas se rellenan utilizando los siguientes métodos:
- QMediaDevices::audioInputs()
- QMediaFormat::supportedAudioCodecs
- QMediaFormat::supportedFileFormats
- QAudioDevice::maximumSampleRate()
- QAudioDevice::minimumSampleRate()
El deslizador de calidad se configura de 0 (cero) a QMediaRecorder::VeryHighQuality con un valor por defecto de QMediaRecorder::NormalQuality, mientras que el cuadro de tasa de bits están codificados en la lista.
Grabación de audio
Para grabar audio simplemente creamos un objeto QAudioRecorder
audioRecorder = new QAudioRecorder(this);
y configurar las listas como se ha descrito anteriormente. El texto de los botones de grabación y pausa cambian dependiendo de state del objeto audioRecorder. Esto significa que si el estado es QMediaRecorder::StoppedState entonces el texto del botón será "Grabar" y "Pausa". En QMediaRecorder::RecordingState el botón de grabación tendrá el texto "Detener", y en QMediaRecorder::PausedState el botón de pausa tendrá el texto "Reanudar".
Al pulsar los botones también se producirá una conmutación basada en el estado. Si la grabación está detenida, al pulsar el botón de grabación se establecerán los ajustes de codificación y el contenedor en el objeto audioRecorder, y se iniciará la grabación mediante el método 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();
Mientras se graba, la barra de estado de la aplicación se actualiza con la información de duración de la señal durationChanged del objeto 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.