qt 实现录音设备录音
在Qt中,可以使用QAudioInput类来实现录音设备录音。以下是一个简单的示例代码:
#include <QCoreApplication>
#include <QAudioInput>
#include <QBuffer>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建QAudioDeviceInfo对象,用于获取音频输入设备信息
QAudioDeviceInfo info(QAudioDeviceInfo::defaultInputDevice());
// 创建QAudioFormat对象,配置音频格式
QAudioFormat format;
format.setSampleRate(44100); // 采样率
format.setChannelCount(1); // 声道数
format.setSampleSize(16); // 采样大小(位数)
format.setCodec("audio/pcm"); // 编码格式
format.setByteOrder(QAudioFormat::LittleEndian); // 字节序
format.setSampleType(QAudioFormat::SignedInt); // 采样类型
// 创建QAudioInput对象,使用音频输入设备和音频格式
QAudioInput *audioInput = new QAudioInput(info, format);
// 创建QBuffer对象,用于存储录音数据
QBuffer *buffer = new QBuffer();
buffer->open(QIODevice::ReadWrite);
// 开始录音
audioInput->start(buffer);
// 录音时长(单位:毫秒)
int duration = 5000;
// 设置定时器,停止录音
QTimer::singleShot(duration, [&](){
audioInput->stop();
buffer->close();
// 保存录音数据到文件
QFile file("output.pcm");
file.open(QIODevice::WriteOnly);
file.write(buffer->buffer());
file.close();
QCoreApplication::quit();
});
return a.exec();
}
请注意,需要在.pro文件中添加multimedia模块的依赖:
QT += multimedia
该示例代码将录音数据保存到名为"output.pcm"的文件中。你可以根据需要更改采样率、声道数、采样大小和录音时长等参数
原文地址: https://www.cveoy.top/t/topic/ijvv 著作权归作者所有。请勿转载和采集!