使用qt录音3秒并保存到本地文件
你可以使用QAudioRecorder类来实现在Qt中录音并保存到本地文件。
首先,在你的Qt项目中包含以下头文件:
#include <QAudioRecorder>
#include <QUrl>
然后,在你的代码中创建一个QAudioRecorder对象,并设置输出文件的名称和格式:
QAudioRecorder recorder;
recorder.setOutputLocation(QUrl::fromLocalFile("录音文件路径/录音文件名.wav"));
接下来,设置录音的音频编码和质量:
QAudioEncoderSettings audioSettings;
audioSettings.setCodec("audio/wav");
audioSettings.setQuality(QMultimedia::HighQuality);
recorder.setAudioSettings(audioSettings);
然后,开始录音,并设置录音的持续时间:
recorder.record();
QTimer::singleShot(3000, [&recorder]() {
recorder.stop();
});
最后,你可以在录音结束后进行一些处理,比如显示一个消息框:
connect(&recorder, &QAudioRecorder::stateChanged, [&](QAudioRecorder::State newState) {
if (newState == QAudioRecorder::StoppedState) {
QMessageBox::information(nullptr, "录音结束", "录音已保存到文件");
}
});
完整的示例代码如下:
#include <QApplication>
#include <QAudioRecorder>
#include <QUrl>
#include <QTimer>
#include <QMessageBox>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QAudioRecorder recorder;
recorder.setOutputLocation(QUrl::fromLocalFile("录音文件路径/录音文件名.wav"));
QAudioEncoderSettings audioSettings;
audioSettings.setCodec("audio/wav");
audioSettings.setQuality(QMultimedia::HighQuality);
recorder.setAudioSettings(audioSettings);
recorder.record();
QTimer::singleShot(3000, [&recorder]() {
recorder.stop();
});
QObject::connect(&recorder, &QAudioRecorder::stateChanged, [&](QAudioRecorder::State newState) {
if (newState == QAudioRecorder::StoppedState) {
QMessageBox::information(nullptr, "录音结束", "录音已保存到文件");
}
});
return a.exec();
}
将"录音文件路径/录音文件名.wav"替换为你想要保存录音的本地文件路径和文件名。然后,编译并运行这个代码,它将在录音结束后保存录音文件到指定的路径
原文地址: https://www.cveoy.top/t/topic/ioTG 著作权归作者所有。请勿转载和采集!