在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"的文件中。你可以根据需要更改采样率、声道数、采样大小和录音时长等参数

qt 实现录音设备录音

原文地址: https://www.cveoy.top/t/topic/ijvv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录